【发布时间】:2013-05-08 22:58:55
【问题描述】:
如何将此循环转换为 Linq lambda。
我已经定义了一个字典
var dictionary = new Dictionary<int, string>();
dictionary.Add(1,"Test");
dictionary.Add(2,"Test2");
dictionary.Add(3,"Test3");
dictionary.Add(4,"Test4");
并想通过它导航并根据数字值制作一个字符串
int number = 10; // I am hard coded this number for this example
string somevalue = string.Empty;
int somekey = 0;
foreach (var simple in dictionary )
{
while (number>=simple.Key)
{
somevalue += simple.Value;
somekey -= simple.Key;
}
}
}
简单的循环可以正常工作,并且会返回Test4Test4Test2,只需将其转换为 lambda 表达式。
【问题讨论】:
-
这是什么语言?您不能将
+=与 C# 中的声明结合使用。 -
它是 c# 。我只是用
+=做简单的字符串连接 -
显然您的代码无效,无法编译。首先,正如递归所说,您不能在分配
value之前使用它的值,这就是您尝试使用+=运算符所做的事情,其次您是无限循环的,因为你永远不会改变“数字”的值。 -
你说得对,我只是更新代码
-
@fatima:最后你还有一个额外的右花括号。如果你把它拿出来,你的
while循环是一个永远不会终止的无限循环。更新代码时,请尝试执行它以确保它运行。