如何将数据表中的 x 个数据行插入到列表中?
How to insert x number of datarows from a datatable into a list?
我目前正在使用一段现有的代码,它可以将指定数据 table 列中的所有数据行作为整数插入到列表中。但是,在当前代码中我只能添加所有数据行。我希望能够插入 x 个数据行,我该怎么做?
代码:
var dt = new DataTable
{
Columns = { { "Lastname", typeof(int) }, { "Firstname", typeof(int) } }
};
dt.Rows.Add(1, 2);
dt.Rows.Add(4, 5);
dt.Rows.Add(7, 4);
dt.Rows.Add(54, 67);
List<int> ids = new List<int>();
foreach (DataRow row in dt.Rows)
ids.Add((int)row[0]);
foreach(int e in ids)
Console.WriteLine(e);
Console.Read();
此代码当前将打印出 1,4,7,54
但是如果我只想打印 1,4,7
怎么办?
您可以通过使用 linq
实现此目的,如下所示:
var result = dt.Rows.Cast<DataRow>().Where(x => x.Field<int>("Lastname") != 54).ToList();
foreach(var r in result)
{
Console.WriteLine(r.ItemArray[0]); //This will now print out 1, 4, 7
Console.WriteLine(r.ItemArray[1]); //This will now print out 2, 5, 4
}
不要忘记包含命名空间 using System.Linq;
更新:
public List<DataRow> GetDataRowsFromDataTable(int numberOfRows)
{
//your dt code here
return dt.Rows.Cast<DataRow>().Take(numberOfRows).ToList();
}
我目前正在使用一段现有的代码,它可以将指定数据 table 列中的所有数据行作为整数插入到列表中。但是,在当前代码中我只能添加所有数据行。我希望能够插入 x 个数据行,我该怎么做?
代码:
var dt = new DataTable
{
Columns = { { "Lastname", typeof(int) }, { "Firstname", typeof(int) } }
};
dt.Rows.Add(1, 2);
dt.Rows.Add(4, 5);
dt.Rows.Add(7, 4);
dt.Rows.Add(54, 67);
List<int> ids = new List<int>();
foreach (DataRow row in dt.Rows)
ids.Add((int)row[0]);
foreach(int e in ids)
Console.WriteLine(e);
Console.Read();
此代码当前将打印出 1,4,7,54
但是如果我只想打印 1,4,7
怎么办?
您可以通过使用 linq
实现此目的,如下所示:
var result = dt.Rows.Cast<DataRow>().Where(x => x.Field<int>("Lastname") != 54).ToList();
foreach(var r in result)
{
Console.WriteLine(r.ItemArray[0]); //This will now print out 1, 4, 7
Console.WriteLine(r.ItemArray[1]); //This will now print out 2, 5, 4
}
不要忘记包含命名空间 using System.Linq;
更新:
public List<DataRow> GetDataRowsFromDataTable(int numberOfRows)
{
//your dt code here
return dt.Rows.Cast<DataRow>().Take(numberOfRows).ToList();
}