在List <t> Collection中选择方法

MAC*_*MAC 52 c# asp.net list dataset

我有一个asp.net应用程序,现在我正在使用数据集进行数据操作.我最近开始将此数据集转换为List集合.但是,在某些地方它不起作用.一个是在我使用的旧版本中datarow[] drow = dataset.datatable.select(searchcriteria).但是在List集合中,没有可用于查找特定值的方法.我有什么方法可以根据我的搜索条件选择一些值吗?我想知道这是否可行.请帮我.

Jon*_*eet 150

好吧,首先List<T> 确实FindAllConvertAll方法 - 但更惯用,现代的方法是使用LINQ:

// Find all the people older than 30
var query1 = list.Where(person => person.Age > 30);

// Find each person's name
var query2 = list.Select(person => person.Name);
Run Code Online (Sandbox Code Playgroud)

您需要在文件中使用using指令才能使其工作:

using System.Linq;
Run Code Online (Sandbox Code Playgroud)

请注意,这些不使用字符串来表示谓词和项目 - 它们使用委托,通常是从上面的lambda表达式创建的.

如果lambda表达式和LINQ对你来说是新的,我建议你先得到一本关于LINQ的书,比如LINQ in Action,Pro LINQ,C#4 in Nutshell或我自己的C#in Depth.您当然可以从网络教程中学习LINQ,但我认为这是一项非常重要的技术,值得花些时间彻底学习它.


ani*_*key 8

你也可以试试

var query = from p in list
            where p.Age > 18
            select p;
Run Code Online (Sandbox Code Playgroud)


Hem*_*mar 6

尝试这个:

using System.Data.Linq;
var result = from i in list
             where i.age > 45
             select i;
Run Code Online (Sandbox Code Playgroud)

使用 lambda 表达式请使用以下语句:

var result = list.where(i => i.age > 45);
Run Code Online (Sandbox Code Playgroud)