草庐IT

c# - 如何使用 Linq 的聚合函数 C# 添加到列表

我有一个类型的对象集合,我想将其转换为另一种类型。这可以使用foreach轻松完成,但我想弄清楚如何使用Linq的聚合函数来完成它。问题是所有聚合示例都使用支持“+”运算符的类型linestring或int。我希望累加器类型是一个列表,它不支持“+”语义。这是一个简单的例子:publicclassDestinationType{publicDestinationType(intA,intB,intC){...}}varset=fromitemincontext.Itemsselectnew{item.A,item.B,item.C};varnewSet=set.Aggregate(ne

c# - 无法使用集合初始值设定项实现类型 XYZ,因为它不实现 'System.Collections.IEnumerable'

我有以下类(class):publicclassCommentList{stringItemType;stringComment1;stringStatus1;stringDiscussionBoardId;GuidCourseId;GuidCommentID;}我正在尝试执行以下LINQ语句:Listquery=fromcindb.Commentsjoinsindb.Statusonc.StatusIdequalss.StatusIdjoindindb.DiscussionBoardsonc.DiscussionBoardIdequalsd.DiscussionBoardIdwher

c# - 当技能不能在 C# 之外转移时,LINQ 中的 "think"是否不好?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我一直在我的代码中使用LINQ。我已经到了使用LINQ语法分组、排序和组织一堆对象似乎很自然的地步,我很难想象如果没有它我将如何做同样的事情。在此之前我从未深入研究过类似SQL的世界,但我想很多人即使学习了普通的SQL语法也会突然感到被大多数普通编程语言处理复杂对象层次结构的能力所限制?我是不是把自己逼到了一个角落,变得依赖LINQ来完成更复杂的任务?感觉比我编写纯C#代码更具表现力。如果

c# - Lists.ForEach 使用 LINQ/LAMBDA 按标准选择

我有List,我;只想使用LinQ/LAMBDA根据某些标准进行选择我的代码是Lists.ForEach(x=>x.IsAnimal==false{/*DoSomething*/});在这部分x.IsAnimal==false我知道我们可以使用for循环轻松实现这一点,但我想通过使用LinQ/LAMBDA了解更多信息 最佳答案 在使用ForEach之前只需使用Where和ToListLists.Where(x=>!x.IsAnimal).ToList().ForEach(...) 关于c

c# - 集合的隐式转换

这周我遇到了一个关于在C#中对集合进行隐式转换的问题。虽然这(使用implicit)可能不是我们的final方法,但我想至少完成代码以供团队选择。我将问题归结为以下示例案例:我的示例中有两个类:一个表示业务对象(Foo),另一个表示此业务项(FooVO)的客户端版本(ViewObject),定义如下...publicclassFoo{publicstringId{get;set;}publicstringBusinessInfo{get;set;}}publicclassFooVO{publicstringId{get;set;}publicstaticimplicitoperator

c# - .NET、.Contains() 或 .Count() 哪个更快?

我想将修改后的记录数组与从数据库中提取的记录列表进行比较,并从数据库中删除传入数组中不存在的那些记录。修改后的数组来自维护数据库的客户端应用程序,并且此代码在WCF服务应用程序中运行,因此如果客户端从数组中删除一条记录,则应从数据库中删除该记录。下面是示例代码片段:publicvoidUpdateRecords(Record[]recs){//lookfordeletedrecordsforeach(RecordrecinUnitOfWork.Records.ToList()){varcopy=rec;if(!recs.Contains(rec))//usethisone?if(0==

c# - List<DateTime> 上的 Any() 方法未按预期工作

我正在winforms中使用.net4.6(这里的代码来自测试控制台应用程序)有一次我有一个DateTime列表,我需要弄清楚这个列表是否包含特定日期。为此,我尝试在列表中使用Any()。即使列表确实包含所需的日期,Any()也只会返回false。以下是示例代码,它们也具有相同的行为。因此,如果我能对这段代码有所了解,我想它也会对我的实际代码有所帮助。ListdateTimeList=newList();DateTimedateNow=DateTime.Now;DateTimedate=newDateTime(dateNow.Year,dateNow.Month,dateNow.Day

c# - 从列表中选择值

我有以下列表:publicclassProducts{publicstringSKU;publicintWarehouseID;}Listproducts=newList();填充列表后,我得到以下数据:ProductCode|WarehouseIDSKU001|2SKU001|3SKU002|3SKU003|3SKU004|1SKU004|5我有多个SKU,因为该商品可以从多个仓库位置供应,因为它有库存。以SKU001为例,仓库ID2的库存比仓库ID3多。我需要从最少数量的仓库位置中选择项目。我想要结束的是像SKU001|3SKU002|3SKU003|3SKU004|1这将产品选择

c# - LINQ:何时使用编译查询?

我想得到一些专家的建议。我以前使用过编译查询,但对于这种特殊情况,我不确定它是否合适。这是一种搜索表单,其中的查询会根据搜索内容而变化。staticFunc>Search=CompiledQuery.Compile((DBContextdb,intID)=>db.Person.Where(w=>w.LocationID=ID).Select(s=>newFoo{Name=s.PersonName,Age=s.Age,Location=s.LocationName,Kin=s.Kin}));现在如果有人填写搜索框,我想通过向查询添加另一个Where语句来扩展查询:varquery=Sea

c# - 强制linq执行内连接

我试图强制Linq在两个表之间执行内部连接。我举个例子。CREATETABLE[dbo].[People]([PersonId][int]NOTNULL,[Name][nvarchar](MAX)NOTNULL,[UpdatedDate][smalldatetime]NOTNULL...Otherfields...)CREATETABLE[dbo].[CompanyPositions]([CompanyPositionId][int]NOTNULL,[CompanyId][int]NOTNULL,[PersonId][int]NOTNULL,...Otherfields...)现在我正