我有以下DataTable - > dtFinance
ID Account Name Quarter FY Income_Percent
1 ABC Ram Q1 2011 50
2 XYZ Hari Q4 2011 35
3 ABC Rohit Q3 2011 40
4 ABC Ram Q2 2011 25
5 XYZ Hari Q3 2011 60
在上面的数据中,我想检查上面的DataTable中是否存在Q3。如果存在,那么我想获得该季度的Income_Percent和该人的姓名
如何使用LINQ编写查询?
答案 0 :(得分:3)
var query = (
from myRow in _db.dtFinance
where myRow.Quarter == "Q3"
select new { myRow.Name, myRow.Income_Percent }
);
要确定是否有任何匹配项,请使用:
if (query.Any()) ...
要获取第一项的Name和Income_Percent,您可以执行以下操作:
var firstRow = query.First();
string name = firstRow.Name;
int incomePercent = firstRow.Income_Percent;
...
要同时执行两次db调用,您可以执行以下操作:
var firstRow = query.FirstOrDefault();
if (firstRow != null) {
string name = firstRow.Name;
int incomePercent = firstRow.Income_Percent;
...
}
有关详细信息,我建议https://stackoverflow.com/questions/47740/what-are-some-good-linq-resources
另外,我喜欢LINQPad,你可能会发现它很有趣。您可以轻松地测试这些代码片段,并可以试用LINQ语言和数据库。
答案 1 :(得分:1)
@Scott Ripley的答案就是你想要的。我只是想使用方法语法抛出另一个linq示例。您看到的大多数示例都是查询语法,但我通常更喜欢简单方案的方法语法。
var row = _db.dtFinance.FirstOrDefault(x => x.Quarter == "Q3");
if (row != null)
{
var name = row.Name;
var incomePercent = row.Income_Percent;
...
}
我也强烈推荐LINQPad - 非常棒的软件。