草庐IT

c# - 对一个集合进行分组并返回一个字典

我编写了一个方法,该方法采用项目集合(价格项目-每个项目都有一个数量和一个代码)并按代码对它们进行分组,然后返回一个IDictionary,其中键是项目的代码,值是具有该代码的项目组(希望有意义!)下面是方法的实现:publicIDictionary>GetGroupedPriceDetails(IEnumerablepriceDetails){//createadictionarytoreturnvargroupedPriceDetails=newDictionary>();//groupthepricedetailsbycodevargrouping=priceDetails.Gr

c# - 是否有 string.Join(string, string[]) 的 LINQ 等价物

这个问题已经存在:WhatistheLINQwaytoimplode/joinastringarray?[duplicate]关闭9年前。有什么方法可以使用LINQ将对象集合转换为单个新对象吗?我想在另一个LINQtoSQL表达式中使用它。

c# - 使用 LINQ 对数字序列进行无间隙分组

有了这个数组int[]{1,2,3,4,7,8,11,15,16,17,18};我如何转换为这个字符串数组"1-4","7-8","11","15-18"建议?林克? 最佳答案 vararray=newint[]{1,2,3,4,7,8,11,15,16,17,18};varresult=string.Join(",",array.Distinct().OrderBy(x=>x).GroupAdjacentBy((x,y)=>x+1==y).Select(g=>newint[]{g.First(),g.Last()}.Distinc

c# - LINQ 计算 SortedList<dateTime,double> 的移动平均值

我有一个SortedList形式的时间序列.我想计算这个系列的移动平均值。我可以使用简单的for循环来做到这一点。我想知道是否有更好的方法使用linq来执行此操作。我的版本:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){varmySeries=newSortedList();mySeries.Add(newDateTime(2011,01

c# - 林克。从多个表中选择

在项目中我有这个表:产品(id、catalogId、manufacturerId...)目录制造商还有产品型号(id,name,catalogId,catalogTitle,manufacturerId,manufacturerName)。如果我想获取产品项目,如何在Linq中编写下面的SQL查询?SELECTProduct.Name,Product.CatalogId,Product.ManufacturerId,[Catalog].Name,Manufacturer.NameFROMProduct,[Catalog],ManufacturerWHERE[Catalog].Id=Pr

C#:将年份列表构建为整数

我想创建一个C#List整数,从1930年到2010年。在我的脑海中,我能想到的唯一方法是使用for或while循环遍历数字之间的每个整数,并将它们分别添加到List中。我知道C#列表有很多有趣的方法,尤其是当您使用Linq时。谁能想出更有效的方法来做到这一点? 最佳答案 Enumerable.Range(1930,81)(MSDNdocs)将为您提供包含所需内容的枚举。第一个参数是起始值,第二个是项目数。您需要81而不是80,因为您需要1930年到2010年(含)。如果您明确希望它作为List,请使用Enumerable.Rang

c# - 如何使用 Linq/C# 在字典中获取当前之前和之后的项目?

我有一个项目字典,如果我选择一个项目,那么我会给出上一个和下一个选项。我添加了一个代码示例,但我希望有更好/更快的方法来执行此操作,例如500个项目。可能有LINQ选项之类的吗?我检查了Enumerator,但它只有一个moveNext方法,无法设置电流。简单示例:projects是一个字典。project是存在于Dictionary中的KeyValuePair。varmatch=false;varsave=newKeyValuePair();varbefore=newKeyValuePair();varafter=newKeyValuePair();foreach(varpinpro

c# - 比较两个列表以搜索常见项目

Listone//1,3,4,6,7Listsecond//1,2,4,5如何从一个列表中获取第二个列表中也存在的所有元素?在这种情况下应该是:1,4我当然会谈论没有foreach的方法。而是linq查询 最佳答案 您可以使用Intersect方法。varresult=one.Intersect(second);示例:voidMain(){Listone=newList(){1,3,4,6,7};Listsecond=newList(){1,2,4,5};foreach(intrinone.Intersect(second))Con

c# - .NET 2.0 还是 3.5?

我们的客户使用我们软件的vb6版本。我们正在将它们升级为用C#编写的.NET应用程序...使用.net2.0的批量是否比.net3.5少?我对更小体积的定义是:体积更小、安装时间更短等。无论如何,他们中的大多数可能已经有了2.0。我问是因为我想在3.5中利用LINQ。 最佳答案 要利用LINQ,您需要3.5(除非您想将LINQBridge与2.0一起使用)。对于较小的安装程序,.Net3.5Sp1有一个名为“ClientProfile”的新功能。.NETFramework客户端配置文件设置仅包含.NETFramework中通常用于客

c# - 将字符串数组转换为双数组的最快方法?

我最近不得不处理将大型字符串数组转换为数字数组的问题,我想知道最快的方法到底是什么。起初我采用:double[]doubles=sarray.Split(',').Select(Double.Parse).ToArray();...这真的是甜蜜...但是今天,我决定切换回一个简单的for循环来将数组中的所有字符串解析为Double,毫不奇怪,基准测试似乎很受欢迎for循环……所以我应该切换回基本的for循环吗?此外,我想知道是否有更好的类型可用于存储拆分后的字符串,例如HashSet在此转换过程中哪个可能表现更好? 最佳答案 Arr