将新列表发送到 C# 列表中的 LINQ 查询结果
Send a new list to the result of the LINQ query from the list for C#
我正在根据我创建的 Class 创建一个通用列表并输入我需要的数据。
public class GroupList
{
public int pertt { get; set; }
public int pips { get; set; }
public int[] iVals;
public GroupList(int PerTT , int Pips , int[] iValues)
{
this.pertt = PerTT;
this.pips = Pips;
iVals = iValues;
}
public override string ToString()
{
return $"PerTT: {pertt} Pips: {pips} Values: {string.Join(", ", iVals)}";
}
}
我想将我的数据输入到派生自此 Class 的 mydatalist 列表中,并将 LINQ 查询发送到 Mylinqresult Generic 列表并正确打印并执行数学运算。
static void Main(string[] args)
{
List<GroupList> myDataList = new List<GroupList>
{
new GroupList(15, 65, new[] {3, 9, 21, 1, 56}),
new GroupList(15, 65, new[] {13, 19, 121, 11, 156}),
new GroupList(10, 19, new[] {23, 29, 221, 12, 562}),
new GroupList(10, 21, new[] {33, 93, 213, 13, 356}),
new GroupList(21, 9, new[] {43, 49, 421, 41, 456}),
new GroupList(21, 19, new[] {35, 95, 216, 17, 56})
};
List<GroupList> myLinqResult = new List<GroupList>();
myLinqResult = from x in myDataList
where x.iVals[] > 65
select x;
}
当我以这种方式键入查询时出现编译错误。
查询可以根据Int32数组中给定的参数进行查询,可以通过将结果发送到相同的格式列表进行访问,以对数据进行打印和数学运算。
如果您想 select 所有 GroupList
数组中有一个项目超过 65 的对象,您可以这样做:
List<GroupList> myLinqResult = myDataList
.Where(item => item.iVals.Any(i => i > 65))
.ToList();
否则,如果您要 select 所有超过 65 岁的项目(无论 GroupList
它们属于哪个项目),您可以这样做:
List<int> allItemsOver65 = myDataList
.SelectMany(item => item.iVals)
.Where(i => i > 65)
.ToList();
最后,如果您想要 select new GroupList
项与原始项匹配但仅包含其 iVal
数组中的项超过 65 岁的人,您可以这样做:
List<GroupList> myLinqResult = myDataList
.Where(item => item.iVals.Any(i => i > 65))
.Select(item =>
new GroupList(item.pertt, item.pips, item.iVals.Where(i => i > 65).ToArray()))
.ToList();
我正在根据我创建的 Class 创建一个通用列表并输入我需要的数据。
public class GroupList
{
public int pertt { get; set; }
public int pips { get; set; }
public int[] iVals;
public GroupList(int PerTT , int Pips , int[] iValues)
{
this.pertt = PerTT;
this.pips = Pips;
iVals = iValues;
}
public override string ToString()
{
return $"PerTT: {pertt} Pips: {pips} Values: {string.Join(", ", iVals)}";
}
}
我想将我的数据输入到派生自此 Class 的 mydatalist 列表中,并将 LINQ 查询发送到 Mylinqresult Generic 列表并正确打印并执行数学运算。
static void Main(string[] args)
{
List<GroupList> myDataList = new List<GroupList>
{
new GroupList(15, 65, new[] {3, 9, 21, 1, 56}),
new GroupList(15, 65, new[] {13, 19, 121, 11, 156}),
new GroupList(10, 19, new[] {23, 29, 221, 12, 562}),
new GroupList(10, 21, new[] {33, 93, 213, 13, 356}),
new GroupList(21, 9, new[] {43, 49, 421, 41, 456}),
new GroupList(21, 19, new[] {35, 95, 216, 17, 56})
};
List<GroupList> myLinqResult = new List<GroupList>();
myLinqResult = from x in myDataList
where x.iVals[] > 65
select x;
}
当我以这种方式键入查询时出现编译错误。
查询可以根据Int32数组中给定的参数进行查询,可以通过将结果发送到相同的格式列表进行访问,以对数据进行打印和数学运算。
如果您想 select 所有 GroupList
数组中有一个项目超过 65 的对象,您可以这样做:
List<GroupList> myLinqResult = myDataList
.Where(item => item.iVals.Any(i => i > 65))
.ToList();
否则,如果您要 select 所有超过 65 岁的项目(无论 GroupList
它们属于哪个项目),您可以这样做:
List<int> allItemsOver65 = myDataList
.SelectMany(item => item.iVals)
.Where(i => i > 65)
.ToList();
最后,如果您想要 select new GroupList
项与原始项匹配但仅包含其 iVal
数组中的项超过 65 岁的人,您可以这样做:
List<GroupList> myLinqResult = myDataList
.Where(item => item.iVals.Any(i => i > 65))
.Select(item =>
new GroupList(item.pertt, item.pips, item.iVals.Where(i => i > 65).ToArray()))
.ToList();