我正在使用.NET 3.5,并希望能够n从列表中获取每个**项.我对使用lambda表达式还是LINQ实现它并不感到困扰.
编辑
看起来这个问题激起了很多争论(这是一件好事,对吧?).我学到的主要是,当你认为你知道每一种做某事的方式时(尽管这很简单),再想一想!
假设我有一个所有的列表Projects,并且我将它们分组为Category:
var projectsByCat = from p in Projects
group p by p.Category into g
orderby g.Count() descending
select new { Category = g.Key, Projects = g };
Run Code Online (Sandbox Code Playgroud)
现在我想将其显示为网页中的列表,首先我创建左侧div,其次是右侧div.我按Projects每个号码排序Category以显示Categories最多的Projects- 因此我想分成projectsByCat两部分 - 如果我把所有"奇数编号" Categories放在左边而"偶数编号"类别放在右边,我我想我会得到一个相当理智的观点.
所以我认为我可以做到这一点,以获得奇数和偶数成员projectsByCat:
var oddCategories = projectsByCat.Where((cat, index) => index % 2 != 0);
var evenCategories = projectsByCat.Where((cat, index) => index % 2 == 0);
Run Code Online (Sandbox Code Playgroud)
它编译 - 然而,当我运行它时,我得到一个例外,如下所示:
用于查询运算符'Where'的不支持的重载.
我认为自从它首先编译后我就安全了.;)
有一种优雅的方式来做到这一点?而且,是否有一个优雅的解释为什么我的创造性使用Where()不起作用? …
是否有一种优雅的方式来转换这个字符串数组:
string[] a = new[] {"name", "Fred", "colour", "green", "sport", "tennis"};
Run Code Online (Sandbox Code Playgroud)
进入一个字典,使得数组的每两个连续元素成为一个{key,value}字典对(我的意思是{"name" - >"Fred","color" - >"green","sport" - > "网球"})?
我可以通过循环轻松完成,但有更优雅的方式,也许使用LINQ?
如何从整数输入中获得偶数和.
var intInput = 10;
Run Code Online (Sandbox Code Playgroud)
现在我想要均匀的'总和.在这种情况下= 2 + 4 + 6 + 8 + 10 = 30
var evenCount = 0;
if (i % 2==0)
{
evenCount = evenCount + i;
}
Run Code Online (Sandbox Code Playgroud)
怎么做到这一点?