c# - 如何在 C# 中将嵌套的 foreach 循环转换为 LINQ 查询
问题描述
如何在 C# 中将嵌套的 foreach 循环转换为 LINQ 查询,我想在查询结果后返回列表。列表将返回值和描述。下面的代码工作正常,但我需要将这 2 个 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();
推荐阅读
- typescript - ts2339 错误:如何在 vuejs 项目中使用 typescript mixin?
- kentico - 如何从 Kentico.EMS12.MvcComponents.Widget.RichText 中的工具栏按钮自定义弹出窗口
- php - Laravel - 通过 App Locale 进行碳本地化
- node.js - 如何使用node_redis对多个队列进行BLPOP、BRPOP操作
- ruby - 如何从 crontab 运行脚本并避免“LoadError”
- angular - Angular Ionic 4如何使用Route正确传递变量
- r - 如何读取在数据框中提供文件名的多个选择性 JPEG 文件?
- typescript - 将 Intersect / Union 定义为接口属性上的标记
- command-line - 在 Snowsql 中,当我尝试“放置”文件时,我收到以下错误消息:
- react-native - [React Native][Expo] 当文本在文本组件中换行到多行时,文本对齐中断