相关疑难解决方法(0)

在IEnumerable <T>中选择偶数/奇数元素?

可能重复:
使用LINQ 获取序列的奇数/偶数部分
如何从List <T>中获取每个第n项?

我正在使用HtmlAgilityPack和C#来解析一些HTML.

<div id="post-8266">
<div class="ruler"> </div>
<div id="post-8266">
<div class="ruler"> </div>
<div id="post-8266">
<div class="ruler"> </div>
<div id="post-8266">
<div class="ruler"> </div>
Run Code Online (Sandbox Code Playgroud)

基本上,我有这些元素,每个元素都在自己的对象中,在IEnumerable中.

是否有一种优雅的方式来获取集合中的每个N/2元素.意思是,用课跳过每个div .ruler

我需要遍历生成的集合,因此要么将每个找到的对象复制到新的IEnumerable中,要么在foreach函数中使用它内联.

例如:

//Copying resulting set to new IEnumerable<T>:
var odds = elements.SelectOdds();

//Using it inline for my usage:
foreach (var x in elements.SelectOdds())
{   
}
Run Code Online (Sandbox Code Playgroud)

哪种选择最好,我怎样才能做到这一点?

c# linq ienumerable .net-4.0

14
推荐指数
2
解决办法
1万
查看次数

如何在C#中使用Enumerable获取备用元素

这是我的问题的延续:如何在C#中使用Enumarable来反转一系列元素?

现在我只需要替代元素.这是我使用for循环的解决方案:

int Max = 10;
int limit = 5;
Dictionary<String , String> MyDict = new Dictionary<string,string>();
int j = 0;
for (int i = 0; i <Max; i++)
{
    if (i >= limit)
        MyDict.Add((i+1).ToString(), "None");
    else
        MyDict.Add((i+1).ToString(), j.ToString());
    j+=2;
}
Run Code Online (Sandbox Code Playgroud)

输出就像

{ "1" "0"}
{ "2" "2"}
{ "3" "4"}
{ "4" "6"}
{ "5" "8"}
{ "6" "None"}
{ "7" "None"}
{ "8" "None"}
{ "9" "None"}
{ "10" "None"}
Run Code Online (Sandbox Code Playgroud)

如何使用Enumarerable或使用任何LINQ方法执行此操作.与前一个问题相反:如何在C#中使用Enumarable来反转一系列元素?

c# linq lambda enumerable

1
推荐指数
1
解决办法
2010
查看次数

标签 统计

c# ×2

linq ×2

.net-4.0 ×1

enumerable ×1

ienumerable ×1

lambda ×1