在将带有switch语句的foreach循环转换为LINQ时,可以使用LINQ的Select方法结合匿名类型和字典来实现类似的功能。下面是一个示例代码:
var dict = new Dictionary<int, string>
{
{ 1, "One" },
{ 2, "Two" },
{ 3, "Three" }
};
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var result = numbers.Select(n => new
{
Number = n,
Text = dict.ContainsKey(n) ? dict[n] : "Unknown"
});
foreach (var item in result)
{
Console.WriteLine($"Number: {item.Number}, Text: {item.Text}");
}
在这个示例中,我们首先创建了一个字典dict
,其中包含了一些数字和对应的文本。然后,我们创建了一个整数列表numbers
,其中包含了一些数字。接下来,我们使用LINQ的Select方法对numbers
进行遍历,并使用匿名类型来存储每个数字和对应的文本。在匿名类型的构造函数中,我们使用了一个条件表达式来判断字典中是否包含当前数字,如果包含则取出对应的文本,否则使用"Unknown"作为默认值。
最后,我们通过foreach循环遍历结果,并输出每个数字和对应的文本。
这种转换方式可以简化代码,并且使得逻辑更加清晰。在实际应用中,你可以根据具体的需求和数据结构进行相应的修改和扩展。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云