草庐IT

LINQ_ENABLED

全部标签

c# - 动态 LINQ - 有 .NET 4 版本吗?

我希望将LINQ用于一些搜索例程,并希望有一些动态的where子句。因此,例如,如果用户想要按城市搜索或按州搜索,我将进行动态LINQWhere调用,而不是创建两个强类型的LINQ表达式,然后根据用户想要搜索的方式使用适当的表达式.所以我想这样做:Stringcriteria="p.City='Pittsburgh'";//or"p.State='PA'"personData.Where(criteria)代替personData.Where(p=>p.City=="Pittsburgh");或personData.Where(p=>p.State=="PA");我遇到了一个blogp

c# - 如果序列为空,如何使 LINQ 的 Max 函数返回默认值?

我有这个代码:ListmyList=newList();varmax=myList.Max();Console.Write(max);我希望确保如果列表中没有元素,它应该使用int(0)的默认值。而是抛出InvalidOperationException,指出“序列不包含任何元素”。当然我可以使用Any或查询语法(如here)。但我想使用流畅的语法来完成。我该如何解决这个问题? 最佳答案 试试这个:varmyList=newList();varmax=myList.DefaultIfEmpty().Max();Console.Wri

c# - linq distinct 或 group by 多个属性

如何使用C#和Linq从下一个列表中获取结果:varpr=newList(){newProduct(){Title="Boots",Color="Red",Price=1},newProduct(){Title="Boots",Color="Green",Price=1},newProduct(){Title="Boots",Color="Black",Price=2},newProduct(){Title="Sword",Color="Gray",Price=2},newProduct(){Title="Sword",Color="Green",Price=2}};结果:{Title

c# - LINQ 返回列表中与另一个列表中的任何名称(字符串)匹配的项目

我有2个列表。1是产品集合。另一个是商店中的产品集合。如果名称与产品中的任何名称匹配,我需要能够返回所有shopProducts。我有这个,但它似乎不起作用。有什么想法吗?varproducts=shopProducts.Where(p=>p.Name.Any(listOfProducts.Select(l=>l.Name).ToList())).ToList();我需要说给我其他列表中名称存在的所有商店产品。 最佳答案 varproducts=shopProducts.Where(p=>listOfProducts.Any(l=>

c# - 使用 Min 或 Max 时如何处理 LINQ 中的空值?

我有以下Linq查询:result.Partials.Where(o=>o.IsPositive).Min(o=>o.Result)当result.Partials.Where(o=>o.IsPositive)不包含元素时出现异常。除了将操作一分为二并检查是否为null之外,是否有一种优雅的方法来处理此问题?我有一个类充满了像这样的操作。编辑:问题与LINQtoObjects有关。这是我得到的异常(翻译为:序列为空): 最佳答案 Min计算的简短总结-无中介(异常(exception)!)varmin=result.Partials

c# - 通过 EF/Linq 转换到 KeyValuePair

我正在尝试从EF/Linq查询中加载KeyValuePairs列表,如下所示:return(fromoincontext.myTableselectnewKeyValuePair(o.columnA,o.columnB)).ToList();我的问题是这会导致错误"OnlyparameterlessconstructorsandinitializersaresupportedinLINQtoEntities."有没有简单的方法解决这个问题?我知道我可以为此创建一个自定义类而不是使用KeyValuePair,但这看起来确实像是在重新发明轮子。 最佳答案

c# - 使用 LINQ 选择列中的所有不同值

我在VS2012中创建了一个WebApi。我正在尝试从一列“类别”中获取所有值,即所有唯一值,我不希望列表返回重复项。我使用此代码获取特定类别的产品。我如何获得完整的类别列表(类别列中的所有唯一值)?publicIEnumerableGetProductsByCategory(stringcategory){returnrepository.GetAllProducts().Where(p=>string.Equals(p.Category,category,StringComparison.OrdinalIgnoreCase));} 最佳答案

c# - 如何使用 linq 进行 LIKE 查询?

这个问题在这里已经有了答案:LINQversionofSQL'sLIKEstatement(4个答案)关闭去年。如何在Linq中执行LIKE查询?我想执行以下查询。varresults=fromcindb.costumerswherec.FullNameLIKE"%"+FirstName+"%,"+LastNameselectc;

c# - For vs. Linq - 性能 vs. future

非常简短的问题。我有一个随机排序的大字符串数组(100K+条目),我想在其中找到所需字符串的第一次出现。我有两个解决方案。根据我所阅读的内容,我猜测“for循环”目前会提供稍微更好的性能(但这个余量总是会改变),但我也发现linq版本更具可读性。权衡之下,哪种方法通常被认为是当前最佳编码实践,为什么?stringmatchString="dsf897sdf78";intmatchIndex=-1;for(inti=0;i或intmatchIndex=array.Select((r,i)=>new{value=r,index=i}).Where(t=>t.value==matchStri

c# - 使用 LINQ 删除最后一项

这个问题在这里已经有了答案:HowtotakeallbutthelastelementinasequenceusingLINQ?(22个答案)关闭2年前。对于LINQ来说这似乎是一项微不足道的任务(可能确实如此),但我无法弄清楚如何使用LINQ删除序列的最后一项。使用Take并传递序列的长度-1当然可以正常工作。但是,当在一行代码中链接多个LINQ时,这种方法似乎很不方便。IEnumerablesomeList....//thisworksfinevarresult=someList.Take(someList.Count()-1);//butwhatifI'mchainingLINQ