C# 使用where子句从datatable中选择
我试图从数据表中选择几行。我正在选择两列,如何在下面的语句中使用where子句C# 使用where子句从datatable中选择,c#,asp.net,select,datatable,C#,Asp.net,Select,Datatable,我试图从数据表中选择几行。我正在选择两列,如何在下面的语句中使用where子句 cars = new Head { heading = (string)dr["head"], subHeads = dt.Select(r => new SubHead { // how to use a where clause here? subHeading = (string)r["subhead"],
cars = new Head
{
heading = (string)dr["head"],
subHeads = dt.Select(r => new SubHead
{ // how to use a where clause here?
subHeading = (string)r["subhead"],
cars = dt.Select(r2 => new Cars
{ // how to use a where clause here?
name = (string)r2["name"],
quantity = (string)r2["qty"],
}).ToList()
}).ToList()
};
你可以用
dt.where(e => {check something}).Select({select code here})
在两个地方都这样做。希望这能有所帮助。在选择之前,您需要先调用Where。例如:
// Fill the DataSet.
DataSet ds = new DataSet();
ds.Locale = CultureInfo.InvariantCulture;
FillDataSet(ds);
var contacts = ds.Tables["Contact"].AsEnumerable();
var orders = ds.Tables["SalesOrderHeader"].AsEnumerable();
var query =
contacts.SelectMany(
contact => orders.Where(order =>
(contact.Field<Int32>("ContactID") == order.Field<Int32>("ContactID"))
&& order.Field<decimal>("TotalDue") < 500.00M)
.Select(order => new
{
ContactID = contact.Field<int>("ContactID"),
LastName = contact.Field<string>("LastName"),
FirstName = contact.Field<string>("FirstName"),
OrderID = order.Field<int>("SalesOrderID"),
Total = order.Field<decimal>("TotalDue")
}));
foreach (var smallOrder in query)
{
Console.WriteLine("Contact ID: {0} Name: {1}, {2} Order ID: {3} Total Due: ${4} ",
smallOrder.ContactID, smallOrder.LastName, smallOrder.FirstName,
smallOrder.OrderID, smallOrder.Total);
}
//填充数据集。
数据集ds=新数据集();
ds.Locale=CultureInfo.InvariantCulture;
数据集(ds);
var contacts=ds.Tables[“Contact”].AsEnumerable();
var orders=ds.Tables[“SalesOrderHeader”].AsEnumerable();
变量查询=
联系人。选择多个(
联系人=>订单。其中(订单=>
(contact.Field(“ContactID”)==order.Field(“ContactID”))
&&订单字段(“总到期日”)<500.00M)
.选择(订单=>新建)
{
ContactID=contact.Field(“ContactID”),
LastName=contact.Field(“LastName”),
FirstName=联系人字段(“FirstName”),
OrderID=order.Field(“SalesOrderID”),
总计=订单字段(“总到期日”)
}));
foreach(查询中的变量smallOrder)
{
WriteLine(“联系人ID:{0}姓名:{1},{2}订单ID:{3}到期总额:${4}”,
smallOrder.ContactID、smallOrder.LastName、smallOrder.FirstName、,
smallOrder.OrderID、smallOrder.Total);
}
摘自。如何选择特定列?我想为可变子标题单独选择“子标题”列。我在第4行添加了“.Select(c=>c.Field(“subhead”)”),但它在第6行抛出了错误“与'string.this[int]”匹配的最佳重载方法有一些无效参数”。请帮助.cars=newhead{heading=(string)dr[“Head”],subHeads=dt.Select(c=>c.Field(“subhead”)).Select(r=>newsubhead{//where子句在这里如何使用?subHeading=(string)r[“subhead”],cars=dt.Select(r2=>newcars{//如何在此处使用where子句?名称=(字符串)r2[“名称”],数量=(字符串)r2[“数量”],}.ToList()}.ToList()};