将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

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

将LINQ行结果返回到数组或列表

您可以尝试另一种方法:

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();