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

Tho*_*eld 1 c# linq lambda 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来反转一系列元素?

Eni*_*ity 8

您可以使用标准LINQ Where扩展方法作为执行所需操作的基础.

鉴于IEnumerable<T>它的列表将如下工作:

var evens = list.Where((t, i) => i % 2 == 0);
var odds = list.Where((t, i) => i % 2 == 1);
Run Code Online (Sandbox Code Playgroud)

希望你可以在这些基础上做你想做的事.