我在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随着条件的增长而增长,是否有更好的方法将多个查询替换为单个查询
答案 0 :(得分:0)
也许这样的事情是你想要做的? 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);
}
}
}
}