C# 从模型内的二维数组中提取行
我在C#工作。我有一个班级模型:C# 从模型内的二维数组中提取行,c#,linq,C#,Linq,我在C#工作。我有一个班级模型: public class CustomerViewModel { public string Name; public string[][] values; public bool[] flag; } 我希望使用LINQ从flag==false的所有值行中提取值[x][0],类似这样的操作应该可以做到: var result = custVm.flag.Select((f, i) => new { f, val = custVm
public class CustomerViewModel
{
public string Name;
public string[][] values;
public bool[] flag;
}
我希望使用LINQ从flag==false的所有值行中提取值[x][0],类似这样的操作应该可以做到:
var result = custVm.flag.Select((f, i) => new { f, val = custVm.values[i][0] })
.Where(i => !i.f)
.Select(i => i.val);
对于flag数组中的每个条目,都将值从values数组的第一列映射到一个新的匿名对象,其中包含flag和值
然后,您将按标志==false筛选此匿名对象列表
然后您只选择匿名对象的“值”部分。试试以下方法:
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
“flag”是一个数组。实际情况如何?非常感谢你的帮助。。。幸运的是,经过几个小时的努力,我在LINQ中学习到了一个新概念。我仍然对多变量的lambda表达式(或者在=>
之前的声明)不太清楚。这一点,以及.Aggregate()
我完全无法理解。