我有一个asp.net应用程序,现在我正在使用数据集进行数据操作。 最近我开始将这个数据集转换为List集合。 但是,在一些地方它不起作用。 其中一个是在我的旧版本中,我使用 datarow[] drow = dataset.datatable.select(searchcriteria)
。 但是在List集合中,没有可用于查找特定值的方法。 是否有任何方法可以根据我的搜索条件选择某些值? 我想知道这是否可能。 请帮帮我。
首先,List<T>
确实拥有FindAll
和ConvertAll
方法 - 但更为惯用、现代的方法是使用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);
您需要在文件中添加一个using指令才能使其工作:
using System.Linq;
var query = from p in list
where p.Age > 18
select p;
试试这个:
using System.Data.Linq;
var result = from i in list
where i.age > 45
select i;
请使用Lambda表达式编写以下语句:
var result = list.where(i => i.age > 45);
通用的List<T>
具有Where<T>(Func<T, Boolean>)
扩展方法,可用于过滤数据。
在您的情况下,使用行数组:
var rows = rowsArray.Where(row => row["LastName"].ToString().StartsWith("a"));
DataRowCollection
,您需要先进行类型转换。var rows = dataTableRows.Cast<DataRow>().Where(row => row["LastName"].ToString().StartsWith("a"));
我曾经使用过一个脚本来进行连接操作,也许我可以帮到你
string Email = String.Join(", ", Emails.Where(i => i.Email != "").Select(i => i.Email).Distinct());