我有两个整数变量,例如
int Max = 10;
int limit = 5;
和字典
Dictionary<String , String> MyDict = new Dictionary<string,string>();
我需要用Max
元素填充字典,如果索引大于或等于,limit
则该值应该为无。
这是我的示例代码,它将清除我的问题
int j = 1;
for (int i = Max-1; i >= 0; i--)
{
if (i >= limit)
MyDict.Add((j++).ToString(), "None");
else
MyDict.Add((j++).ToString(), i.ToString());
}
所以结果会像
{ "1" "None" }
{ "2" "None" }
{ "3" "None" }
{ "4" "None" }
{ "5" "None" }
{ "6" "4" }
{ "7" "3" }
{ "8" "2" }
{ "9" "1" }
{ "10" "0" }
如何使用LINQ
或LAMBDA Expression
可以使用Enumarable
这里来完成相反的操作
MyDict = Enumerable.Range(0, Max)
.ToDictionary(X => (X + 1).ToString(), X => X >= limit ? "None" : X.ToString());
此表达式的输出
{ "1" "0" }
{ "2" "1" }
{ "3" "2" }
{ "4" "3" }
{ "5" "4" }
{ "6" "None" }
{ "7" "None" }
{ "8" "None" }
{ "9" "None" }
{ "10" "None" }
但是如何做相反的事情(比如for
循环的输出)?或者我该如何修改现有的LINQ
?
提前致谢。