0

我有一个 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.IEnumerable, System.Func>) 方法的类型参数无法从用法中推断出来。尝试明确指定类型参数。

有点像这样

0 : column1;column2;column3
1 : column1;column2;column3
2 : column1;column2;column3

所以当我收到我的列表时,我可以剖析每一行,然后分离数据。

4

3 回答 3

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();
}
于 2013-04-10T11:02:52.410 回答
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;
}
于 2013-04-10T11:52:53.750 回答
0

在查询中选择您想要的数据,然后使用ToList查询上的方法:

var Cases = from q in db.Cases
    where q.Company == Company
    select q.Name;

List<string> lst = Cases.ToList();
于 2013-04-10T11:03:13.637 回答