草庐IT

ienumerable

全部标签

c# - IQueryable、List、IEnumerator 之间的区别?

我想知道IQueryable、List、IEnumerator之间的区别是什么以及我应该何时使用它们?例如,当使用LinqtoSQL时,我会做这样的事情:publicListGetUsers(){returndb.User.where(/*somequeryhere*/).ToList();}现在我想知道是否应该使用IQueryable代替。我不确定在列表中使用它的优势。 最佳答案 IQueryable旨在允许查询提供程序(例如,像LINQtoSQL或EntityFramework这样的ORM)使用查询中包含的表达式将请求转换为另一

c# - IQueryable、List、IEnumerator 之间的区别?

我想知道IQueryable、List、IEnumerator之间的区别是什么以及我应该何时使用它们?例如,当使用LinqtoSQL时,我会做这样的事情:publicListGetUsers(){returndb.User.where(/*somequeryhere*/).ToList();}现在我想知道是否应该使用IQueryable代替。我不确定在列表中使用它的优势。 最佳答案 IQueryable旨在允许查询提供程序(例如,像LINQtoSQL或EntityFramework这样的ORM)使用查询中包含的表达式将请求转换为另一

c# - 跨两个列表应用运算符的 C# 惯用方法是什么?

我习惯这样做(来自其他语言):a=1,2,3;b=5,1,2;c=a*b;//c=5,2,6这需要两个大小相等的列表,并将一个函数应用于它们的成员,一次一个,以获得结果列表。它可以是像乘法一样简单的函数(如上)或更复杂的函数:c=b>a?b-a:0;//c=4,0,0我可以想到几种不同的方法在C#中执行此操作,但我不确定受过C#培训的程序员会如何执行此操作。在C#世界中处理此问题的正确方法是什么?(我唯一要问的部分是在哪里c=f(a,b)。我熟悉创建列表和访问他们的列表元素。) 最佳答案 varc=a.Zip(b,(x,y)=>x*

c# - 跨两个列表应用运算符的 C# 惯用方法是什么?

我习惯这样做(来自其他语言):a=1,2,3;b=5,1,2;c=a*b;//c=5,2,6这需要两个大小相等的列表,并将一个函数应用于它们的成员,一次一个,以获得结果列表。它可以是像乘法一样简单的函数(如上)或更复杂的函数:c=b>a?b-a:0;//c=4,0,0我可以想到几种不同的方法在C#中执行此操作,但我不确定受过C#培训的程序员会如何执行此操作。在C#世界中处理此问题的正确方法是什么?(我唯一要问的部分是在哪里c=f(a,b)。我熟悉创建列表和访问他们的列表元素。) 最佳答案 varc=a.Zip(b,(x,y)=>x*

c# - 将两个列表映射到 C# 中的字典中

给定两个IEnumerable大小相同,如何将其转换为字典使用Linq?IEnumerablekeys=newList(){"A","B","C"};IEnumerablevalues=newList(){"ValA","ValB","ValC"};vardictionary=/*Linq?*/;预期的输出是:A:ValAB:ValBC:ValC我想知道是否有一些简单的方法可以实现它。我应该担心性能吗?如果我有大量收藏品怎么办?如果有更简单的方法,我不会这样做,目前我是这样做的:我有一个扩展方法,它将循环IEnumerable为我提供元素和索引号。publicstaticclassEx

c# - 将两个列表映射到 C# 中的字典中

给定两个IEnumerable大小相同,如何将其转换为字典使用Linq?IEnumerablekeys=newList(){"A","B","C"};IEnumerablevalues=newList(){"ValA","ValB","ValC"};vardictionary=/*Linq?*/;预期的输出是:A:ValAB:ValBC:ValC我想知道是否有一些简单的方法可以实现它。我应该担心性能吗?如果我有大量收藏品怎么办?如果有更简单的方法,我不会这样做,目前我是这样做的:我有一个扩展方法,它将循环IEnumerable为我提供元素和索引号。publicstaticclassEx

c# - C# 是否有用于 List/IEnumerable 的 IsNullOrEmpty?

我知道通常空列表比NULL更受欢迎。但是我要返回NULL,主要有两个原因我必须明确检查和处理空值,避免错误和攻击。之后很容易执行??操作得到返回值。对于字符串,我们有IsNullOrEmpty。C#本身有没有对List或IEnumerable做同样的事情? 最佳答案 框架中没有任何内容,但它是一种非常直接的扩展方法。Seehere//////Determineswhetherthecollectionisnullorcontainsnoelements.//////TheIEnumerabletype.///Theenumerabl

c# - C# 是否有用于 List/IEnumerable 的 IsNullOrEmpty?

我知道通常空列表比NULL更受欢迎。但是我要返回NULL,主要有两个原因我必须明确检查和处理空值,避免错误和攻击。之后很容易执行??操作得到返回值。对于字符串,我们有IsNullOrEmpty。C#本身有没有对List或IEnumerable做同样的事情? 最佳答案 框架中没有任何内容,但它是一种非常直接的扩展方法。Seehere//////Determineswhetherthecollectionisnullorcontainsnoelements.//////TheIEnumerabletype.///Theenumerabl

c# - C# 中有 "Empty List"单例吗?

在C#中,我经常使用LINQ和IEnumerable。一切都很好(或者至少大部分情况下是这样)。但是,在很多情况下,我发现自己需要一个空的IEnumerable作为默认值。也就是说,我想for(varxinxs){...}无需空检查即可工作。现在,这就是我目前所做的,具体取决于更大的上下文:varxs=f()??newX[0];//whenxsisassigned,sometimesfor(varxinxs??newX[0]){...}//inline,sometimes现在,虽然上面的内容对我来说完全没问题——也就是说,如果创建数组对象有任何“额外开销”,我只是不关心--我在想:C#

c# - C# 中有 "Empty List"单例吗?

在C#中,我经常使用LINQ和IEnumerable。一切都很好(或者至少大部分情况下是这样)。但是,在很多情况下,我发现自己需要一个空的IEnumerable作为默认值。也就是说,我想for(varxinxs){...}无需空检查即可工作。现在,这就是我目前所做的,具体取决于更大的上下文:varxs=f()??newX[0];//whenxsisassigned,sometimesfor(varxinxs??newX[0]){...}//inline,sometimes现在,虽然上面的内容对我来说完全没问题——也就是说,如果创建数组对象有任何“额外开销”,我只是不关心--我在想:C#