gpt4 book ai didi

c# - 根据另一个列表中的真实条件从通用列表中选择项目

转载 作者:行者123 更新时间:2023-11-30 13:32:56 25 4
gpt4 key购买 nike

我想知道下面的问题是否有任何 LINQ/Lambda 表达式解决方案。

我有 2 个通用列表

列表 1

public class Data
{
public string ID { get; set;}
public string Package { get; set;}
}

List<Data> listData = new List<Data>();

Data data1 = new Data { ID = "1", Package = "Test" };
Data data2 = new Data { ID = "2", Package = "Test2" };
Data data3 = new Data { ID = "3", Package = "Test2" };
Data data4 = new Data { ID = "4", Package = "Test4" };

listData.Add(data1);
listData.Add(data2);
listData.Add(data3);
listData.Add(data4);

列表 2

List<int> listFilter =  List<int>();

listFilter.Add(1);
listFilter.Add(0);
listFilter.Add(0);
listFilter.Add(1);

我想根据“listFilter”中的真 (1) 条件过滤“listData”。对于上面的示例,我必须能够将 data1 和 data4 拉入新列表。

目前,我正在使用 for 循环来实现,如下所示。

List<Data> listResult =  new List<Data>();
for(int index=0; index<listData.Count; index++)
{
if(listFilter[index]==1)
{
listResult.Add(listData[index]);
}

}

如果有人能告诉我如何使用 LINQ 或 Lambda 表达式来实现这一点,我将不胜感激。

谢谢

巴兰

最佳答案

var results = listData.Where((item, index) => listFilter[index] == 1);

请注意,如果 listData 比 listFilter 长,这将失败,这与您的代码相同。

关于c# - 根据另一个列表中的真实条件从通用列表中选择项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10377536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com