将 for 循环转换为 linq
Convert a for loop to linq
我有一个简单的 for 循环,但我想将它转换为 Linq 和 return 空字典。如果对象为空。我以前没用过。谁能帮我解决这个问题?
private Dictionary<string, class1> getInfo(IEnumerable<class2> infos)
{
Dictionary<string, class1> trs = new();
if (infos is null)
return trs;
//This loop I want to convert to linq
for(class2 info in infos)
{
class1 tr = new()
{
bi = info.bi,
state = bi.State,
res = Enum.value;
};
trs.Add(info.value1, tr);
}
return trs;
}
您可以使用 .ToDictionary()
从 IEnumerable<class2>
创建字典
Dictionary<string, class1> trs = infos
?.ToDictionary(key => Key.value1,
value => new class1() {
bi = value.bi,
state = bi.State,
res = Enum.value
}) ?? new Dictionary<string, class1>();
免费建议 : 我强烈建议您在声明 class 和变量时使用正确的命名约定,这将使您的代码更具可读性和易于理解
我有一个简单的 for 循环,但我想将它转换为 Linq 和 return 空字典。如果对象为空。我以前没用过。谁能帮我解决这个问题?
private Dictionary<string, class1> getInfo(IEnumerable<class2> infos)
{
Dictionary<string, class1> trs = new();
if (infos is null)
return trs;
//This loop I want to convert to linq
for(class2 info in infos)
{
class1 tr = new()
{
bi = info.bi,
state = bi.State,
res = Enum.value;
};
trs.Add(info.value1, tr);
}
return trs;
}
您可以使用 .ToDictionary()
从 IEnumerable<class2>
Dictionary<string, class1> trs = infos
?.ToDictionary(key => Key.value1,
value => new class1() {
bi = value.bi,
state = bi.State,
res = Enum.value
}) ?? new Dictionary<string, class1>();
免费建议 : 我强烈建议您在声明 class 和变量时使用正确的命名约定,这将使您的代码更具可读性和易于理解