草庐IT

c# - 带空值的 LINQ Max()

我有一个列表,其中包含一堆点(带有X和Y分量)。我想获得列表中所有点的MaxX,如下所示:doublemax=pointList.Max(p=>p.X);问题是当我在列表中有一个空值而不是一个点时。解决此问题的最佳方法是什么? 最佳答案 好吧,你可以过滤掉它们:pointList.Where(p=>p!=null).Max(p=>p.X)另一方面,如果您希望将null视为具有X坐标0(或类似值)的点,您可以这样做:pointList.Max(p=>p==null?0:p.X)请注意,如果序列为空,这两种技术都会抛出异常。一种解决方法

c# - LINQ:结合加入和分组依据

我有一个结合了联接和组的查询,但我遇到了问题。查询如下:varresult=frompinProductsjoinbpinBaseProductsonp.BaseProductIdequalsbp.Idgrouppbyp.SomeIdintopgselectnewProductPriceMinMax{SomeId=pg.FirstOrDefault().SomeId,CountryCode=pg.FirstOrDefault().CountryCode,MinPrice=pg.Min(m=>m.Price),MaxPrice=pg.Max(m=>m.Price),BaseProduct

c# - 使用 LINQ 在 C# 中获取 List<> 元素位置

我有一个带数字的列表,我想使用LINQ找到最小值(不是值)的位置例子:varlst=newList(){3,1,0,5};现在我正在寻找返回我的函数output=2因为最小值在列表中的位置2。 最佳答案 varlist=newList{3,1,0,5};intpos=list.IndexOf(list.Min());//returns2 关于c#-使用LINQ在C#中获取List元素位置,我们在StackOverflow上找到一个类似的问题: https://

c# - 如何将索引字段添加到 Linq 结果

假设我有一个这样的数组:string[]Filelist=...我想创建一个Linq结果,其中每个条目在数组中的位置如下:varlist=fromfinFilelistselectnew{Index=(something),Filename=f};第一项的索引为0,第二项的索引为1,依此类推。我应该为表达式Index=使用什么? 最佳答案 不要使用查询表达式。使用theoverloadofSelectwhichpassesyouanindex:varlist=FileList.Select((file,index)=>new{Ind

c# - LINQ OrderBy 排序不正确

我希望有人能在这里证明我错了:)如果我这样做:Lista=newList{"b","c","a","aa"};varb=a.OrderBy(o=>o).ToList();我希望“b”的结果是:aaabc相反,我得到的结果是:abcaa如何让OrderBy进行“正确的”字母排序?我完全错了吗?:) 最佳答案 丹麦文化将aa视为å并将其相应地放在ø之后。您可以传递一个与OrderBy行为不同的字符串比较器来改变它:varb=a.OrderBy(o=>o,StringComparer.InvariantCulture).ToList();

c# - LINQ Group By 并选择集合

我有这个结构Customer-hasmanyOrders-hasmanyOrderItems在给定OrderItems子集的情况下,我想通过LINQ生成CustomerItems列表:Listofnew{Customer,ListItems}这是客户从项目子集中订购的所有项目的分组我如何使用LINQ回溯订单并按客户分组以生成此对象?到目前为止我在做类似的事情items.GroupBy(i=>i,i=>i.Order.Customer,(i,customer)=>new{customer,i})但这显然不是列表。我猜我在某处需要一个SelectMany,但可以使用一些指针。

c# - 如何使用linq查找具有最大值的项目?

这个问题在这里已经有了答案:HowtouseLINQtoselectobjectwithminimumormaximumpropertyvalue(20个答案)关闭9年前。请看下表:ItemValueA10b50c90我想找到具有最大值的项目。我可以通过使用groupby或orderding来获得它,但不知何故我觉得应该有更直接的方法。我说得对吗?

c# - Linq 查询分组依据并选择第一项

我有一个像这样的字符串数组://icon,category,toolString[,]subButtonData=newString[,]{{"graphics/gui/brushsizeplus_icon","Draw","DrawBrushPlus"},{"graphics/gui/brushsizeminus_icon","Draw","DrawBrushMinus"},{"graphics/gui/freedraw_icon","Draw","DrawFree"},{"graphics/gui/linedraw_icon","Draw","DrawLine"},{"graphi

c# - 如何使用 LINQ 从 List<int> 中获取最接近的数字?

如何从List中获取最接近的数字使用LINQ?例如:Listnumbers=newList();numbers.Add(2);numbers.Add(5);numbers.Add(7);numbers.Add(10)我需要在列表中找到最接近数字9的值。在本例中为10。如何使用LINQ执行此操作? 最佳答案 如果您使用LINQtoObjects列表很长,我会使用:Listlist=newList{2,5,7,10};intnumber=9;intclosest=list.Aggregate((x,y)=>Math.Abs(x-numb

c# - LINQ to Entities 不支持 LINQ 表达式节点类型 'ArrayIndex'

publicListGetpathsById(Listid){long[]aa=id.ToArray();longx;Listpaths=newList();for(inti=0;im.PresId==aa[i]).FirstOrDefault();paths.Add(press.FilePath);}returnpaths;}此代码引发以下异常:LINQtoEntities不支持LINQ表达式节点类型“ArrayIndex”。但是,如果我提供x而不是aa[i]它会起作用。为什么? 最佳答案 要解决此问题,请使用临时变量:vartm