我有一个LINQ查询,我想返回它的行。 perferred输出将是行列表或数组。
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.IEnumerable, System.Func&GT) 无法从使用中推断出来。尝试指定类型参数 明确。
有点像这样
0 : column1;column2;column3
1 : column1;column2;column3
2 : column1;column2;column3
因此,当我收到我的列表时,我可以删除每一行,然后分开数据。
答案 0 :(得分:1)
这是因为Cases
不是字符串,所以你需要选择Cases的确切属性,例如如果你有一个属性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();
}
答案 1 :(得分:1)
您可以尝试其他方法:
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;
}
答案 2 :(得分:0)
在查询中选择所需的数据,并在查询中使用ToList
方法:
var Cases = from q in db.Cases
where q.Company == Company
select q.Name;
List<string> lst = Cases.ToList();