如何解决如何在C#中将嵌套的foreach循环转换为LINQ查询
如何在C#中将嵌套的foreach循环转换为LINQ查询,我想在查询结果后返回列表。 清单将返回标价和说明。 下面的代码工作正常,但我需要将这两个foreach循环转换为单个LINQ查询。
List<ListItem> listCodes = new List<ListItem>();
foreach (var staticValueGroupMember in staticValueGroupMembers)
{
string description = string.Empty;
if (staticValueGroupMember != null)
{
foreach (var staticValue in staticValues)
{
if (staticValue.Value == staticValueGroupMember.MemberCode.ToString())
{
description = staticValue.Description;
break;
}
}
listCodes.Add(new ListItem() { Value = staticValueGroupMember.MemberCode.ToString(),Description = description });
}
}
return listCodes;
解决方法
这几乎是直接翻译。
List<ListItem> listCodes =
(
from staticValueGroupMember in staticValueGroupMembers
where staticValueGroupMember != null
join staticValue in staticValues
on staticValueGroupMember.MemberCode.ToString() equals staticValue.Value
select new ListItem()
{
Value = staticValueGroupMember.MemberCode.ToString(),Description = staticValue.Description
}
).ToList();
,
尝试以下代码:
var result = staticValueGroupMembers
.Where(gm => gm != null)
.Join(staticValues,outer => outer.MemberCode.ToString(),inner => inner.Value,(outer,inner) => new ListItem()
{
Value = outer.MemberCode.ToString(),Description = inner.Description
})
.ToList();
这是Join方法的详细信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。