我如何将此循环转换为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表达式。
答案 0 :(得分:0)
我想你想要这个:
List<string> list = dictionary
.Select(kv => string.Join("", Enumerable.Repeat(kv.Value, kv.Key)))
.ToList();
随你示例:"Test"
(TestTest
如果密钥为2)
但是,你的循环不能编译,当密钥已经指示重复次数时,你不清楚你需要number
。