草庐IT

c# - Linq 中的 ToList 方法

如果我没记错的话,ToList()方法会迭代所提供集合的每个元素并将它们添加到List的新实例并返回此实例。假设一个示例//usinglinqlist=Students.Where(s=>s.Name=="ABC").ToList();//traditionalwayforeach(varstudentinStudents){if(student.Name=="ABC")list.Add(student);}我认为传统方式更快,因为它只循环一次,而上面的Linq为Where方法迭代两次,然后为ToList()方法迭代两次。我现在正在从事的项目广泛使用了列表,我看到有很多这样的ToLis

c# - LINQ Guid toString()

嗨,这看起来应该可行,fromsomethingincollectionofsomestuffselectnewSelectListItem(){Text=something.Name,Value=something.SomeGuid.ToString(),Selected=false};当我尝试这样做时它不起作用给我错误LINQtoEntitiesdoesnotrecognizethemethod'System.StringToString()'method,andthismethodcannotbetranslatedintoastoreexpression.有解决办法吗?

c# - 如何在 NHibernate Linq 查询中执行不区分大小写的字符串?

如何在NHibernateLinq查询中进行不区分大小写的where?例如//notethisonedoesn'tworkiftheentryindatabasehaslowercaseq=>q.Where(entity=>entity.CaseInsensitiveField==DesiredField.Trim().ToUpper()) 最佳答案 试试这个:q=>q.Where(entity=>entity.CaseInsensitiveField.ToUpper()==DesiredField.Trim().ToUpper()

c# - LINQ-to-SQL:返回单个标量值的存储过程?

我正在将LINQ-to-SQL用于查询遗留数据库的应用程序。我需要调用一个存储过程,它选择一个整数值。更改存储过程不是一种选择。设计者用这个签名创建了一个方法:privateISingleResultNextRowNumber([Parameter(DbType="Int")]System.Nullableincrement,[Parameter(DbType="Char(3)")]stringdataset)我希望返回类型是int。我如何使用LINQ-to-SQL执行此操作? 最佳答案 对于标量函数(UDF)而不是SP,这将是微不

c# - 在 LINQ 中列出列

给定一个IEnumerable和行数,我想将其转换为IEnumerable>像这样:输入:RowCount:3List:[1,2,3,4,5,6,7]输出[[1,4,7][2,5][3,6]]编辑我希望这适用于任何IEnumerable,而不依赖于T是Int32。如何使用LINQ执行此操作? 最佳答案 这样做就可以了:varlist=newList{1,"two",3,4,5,6,7};intcount=3;varrows=list.Select((item,index)=>new{Item=item,Index=index}).G

c# - 何时使用 LINQ 的 .ToList() 或 .ToArray()

运行这段代码后:varinput=newList(...);varresult=input.Select(t=>newU(t));Ufirst1=null;foreach(Uu1inresult)if(first1==null)first1=u1;Ufirst2=null;foreach(Uu2inresult)if(first2==null)first2=u2;然后'first1==first2'评估为false,即使两个U包装相同的T。我还没有测试它,但我认为它可以通过链接.ToList()或.ToList()来评估为true。ToArray()到Select()调用上。在实际代码

c# - Linq:如何从集合中查询项目直到总和达到某个值

给定以下对象:publicclassProduct{stringName{get;}intQuantity{get;}}使用Linq,我将如何查询List直到我得到一笔款项>=给定的数量?换句话说,如果我的列表看起来像NameQuantity-----------------prod15prod26prod77我想查询列表并拉取实例,直到得到总和>=8.在这种情况下,我会得到列表中的前两项。如果我想要总和>=12,我会得到所有三个。我知道我可以编写一个循环来为我做这件事,但我幻想有一些巧妙的单行代码使用Linq来实现同样的事情。谢谢 最佳答案

c# - 将 LINQ 序列中的项目发送到返回 void 的方法

当我处理LINQ序列时,我常常想将每个项目发送到一个返回void的方法,避免foreach循环。但是,我还没有找到一种优雅的方法来做到这一点。今天,我写了以下代码:privateStreamWriter_sw;privatevoidstreamToFile(Listerrors){if(_sw==null){_sw=newStreamWriter(Path.Combine(Path.GetDirectoryName(_targetDatabasePath),"errors.txt"));}FuncwriteSelector=(e)=>{_sw.WriteLine(getTabDelim

c# - 在 LINQ c# 中查询项目列表

我对LINQ有点陌生,这是我的问题。我有一个项目list我喜欢获取存在于只有一个列表(如果我能得到他们没有的名单重申通过“名单列表”,那就太好了)。我尝试在Linq查询中使用Aggregate/Except/Group关键字但没有成功,但到目前为止还没有接近解决方案。[编辑]例如可以是List>并且int的值不在其他列表中的条件。老实说,如果我尝试了几个foreach我成功地找到了有值(value)的项目,但是当我尝试学习LINQ时,我想知道我应该编写什么样的查询来获得结果例如1,2,61,63,55,103,10,6将返回2和第一个列表 最佳答案

c# - 使用 linq 查询集合的子集合

我有一个产品集合,每个产品对象都有自己的ProductImages集合。每个ProductImage对象都有一个IsMainImagebool字段。我很难像这样构建Linq查询:selectproducts.productimages.imagenamewhereproducts.productid==1andproduct.productimages.ismainimage==true任何人都可以帮我解决这个问题,给我指出一个在线资源,在那里我可以学习如何编写这样的linq查询,或两者兼而有之?感谢您的帮助! 最佳答案 尝试类似的