更好的LINQ查询基于条件设置属性值
本文关键字:条件 设置 属性 LINQ 查询 于条件 更好 | 更新日期: 2023-09-27 18:18:05
我在LINQ下面有,
Class class1
{
public int Code {get; set;}
public bool IsEditable {get; set;}
}
Class class2
{
public string value {get; set;}
}
var list1 = LoadList(); // List<Class1>
var list2 = LoadList2();// List<Class2>
list1.Where(w => w.Code == 1).FirstOrDefault().IsEditable = List2.Where(w1 => w1.value == "one").Any();
list1.Where(w => w.Code == 2).FirstOrDefault().IsEditable = List2.Where(w1 => w1.value == "two").Any();
我的linq随着条件的增长而增长,是否有更好的方法将多个查询替换为单个查询
也许这就是您想要做的事情?其中dictionary
为您映射值
using System.Collections.Generic;
using System.Linq;
namespace MyNamespace
{
class Class1
{
public int Code { get; set; }
public bool IsEditable { get; set; }
}
class Class2
{
public string Value { get; set; }
}
class Program
{
static void Main()
{
var dictionary = new Dictionary<int, string>
{
{1, "one"},
{2, "two"}
// ...
};
var list1 = new List<Class1>();
// add stuff to list 1
var list2 = new List<Class2>();
// add stuff to list 2
foreach (var pair in dictionary)
{
list1.First(w => w.Code == pair.Key).IsEditable = list2.Any(w1 => w1.Value == pair.Value);
}
}
}
}