将LINQ行结果返回到数组或列表
本文关键字:数组 列表 返回 LINQ 结果 | 更新日期: 2023-09-27 18:08:38
我有一个LINQ查询,我想返回它的行。首选输出将是行列表或数组。
var Cases = from q in db.Cases
where q.Company == Company
select q;
这将得到我想要的情况,但我希望我的方法返回数组或行列表。许多谷歌点击建议使用SelectMany();但我总是出错。例如:
public static List<string> ReceiveDBlist(string Company)
{
var Cases = from q in db.Cases
where q.Company == Company
select q;
List<string> lst = Cases.SelectMany(x => x).ToList();
return lst;
}
给出这个错误:
方法的类型参数System.Linq.Enumerable.SelectMany (System.Collections.Generic.IEnumerableSystem.Func>)不能从用法中推断出来。尝试指定类型参数明确。
就像这样
0 : column1;column2;column3
1 : column1;column2;column3
2 : column1;column2;column3
所以当我收到列表时,我可以拆分每一行,然后分离数据。
您可以尝试另一种方法:
public static List<string> ReceiveDBlist(string Company)
{
List<string> result = new List<string>();
var Cases = from q in db.Cases
where q.Company == Company
select q;
foreach(var c in Cases)
{
string row = c.Column1 + ";" + c.Column2 + ";" + c.Column3;
result.Add(row);
}
return result;
}
这是因为Cases
不是字符串,所以您需要选择case的确切属性,例如,如果您有一个属性CaseTitle
,那么您可以像这样使用.ToList()
:
public static List<string> ReceiveDBlist(string Company)
{
var Cases = from q in db.Cases
where q.Company == Company
select q.CaseTitle;
return Cases.ToList();
}
选择查询中需要的数据,在查询中只使用ToList
方法:
var Cases = from q in db.Cases
where q.Company == Company
select q.Name;
List<string> lst = Cases.ToList();