我在C#工作。我有一个班级模特:
public class CustomerViewModel
{
public string Name;
public string[][] values;
public bool[] flag;
}
我希望使用LINQ
答案 0 :(得分:3)
这样的事情应该这样做:
var result = custVm.flag.Select((f, i) => new { f, val = custVm.values[i][0] })
.Where(i => !i.f)
.Select(i => i.val);
对于标志数组中的每个条目,您将值数组的第一列中的值映射到包含标志和值的新的anonyomous对象。
然后您通过flag == false过滤此匿名对象列表。
然后,您只选择匿名对象的“值”部分。
答案 1 :(得分:1)
试试这个:
static void Main(string[] args)
{
var model = new CustomerViewModel()
{
flag = new bool[] { false, true, false },
Name = "a",
values = new string[][] {
new string[] { "a", "b" },
new string[] { "c", "d" },
new string[] { "e", "f" }
}
};
var result = model.values
.Where((v, i) => !model.flag[i])
.Select(v => v[0]).ToList();
}
返回a
和e
。