Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将LINQ行结果返回到数组或列表_C#_Arrays_Linq_List - Fatal编程技术网

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

C# 将LINQ行结果返回到数组或列表,c#,arrays,linq,list,C#,Arrays,Linq,List,我有一个LINQ查询,我想返回它的行。 perferred输出将是行列表或数组 var Cases = from q in db.Cases where q.Company == Company select q; 这将得到我想要的案例,但我希望我的方法返回数组或行列表。 许多谷歌点击建议使用SelectMany();但我一直在犯错误。 例如: 因此,当我收到我的列表时,我可以分离每一行,然后分离数据 这是因为Ca

我有一个LINQ查询,我想返回它的行。 perferred输出将是行列表或数组

var Cases = from q in db.Cases
                    where q.Company == Company
                    select q;
这将得到我想要的案例,但我希望我的方法返回数组或行列表。 许多谷歌点击建议使用SelectMany();但我一直在犯错误。 例如:


因此,当我收到我的列表时,我可以分离每一行,然后分离数据

这是因为
Cases
不是字符串,所以您需要选择Cases的确切属性,例如,如果您有一个属性
casetTitle
,那么您可以像这样使用
.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();
}
公共静态列表ReceiveDBlist(字符串公司)
{
var案例=以db为单位的q案例
其中q.Company==Company
选择q.casettitle;
返回Cases.ToList();
}

选择查询中需要的数据,只需在查询中使用
ToList
方法即可:

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

List<string> lst = Cases.ToList();
var Cases=从q开始,单位为db.Cases
其中q.Company==Company
选择q.名称;
List lst=Cases.ToList();

您可以尝试另一种方法:

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;
}
公共静态列表ReceiveDBlist(字符串公司)
{
列表结果=新列表();
var案例=以db为单位的q案例
其中q.Company==Company
选择q;
foreach(案例中的var c)
{
字符串行=c.Column1+“;”+c.Column2+“;”+c.Column3;
结果。添加(行);
}
返回结果;
}

我不知道您到底搜索了什么,但是
SelectMany
在这里肯定不正确
SelectMany
用于将
IEnumerable
展平为
IEnumerable
。看起来您需要将
案例
投射到
字符串中
SelectMany
将返回
x
中任何内容的可枚举项,请尝试附加另一个
Select
以投影到字符串。如果您只需要一个简单的案例列表,那么正如上面Daniel所说的那样,
SelectMany
的用法是不正确的,但是您可能仍然需要使用
Select
进行投影,以将
案例
转换为
字符串
。数据库包含案例数据行,如“主题”“状态”和“注释”等等。目标是在每个索引上获得一个包含每一行的列表,就像我试图用列解释的那样(如果描述是vaque,很抱歉)@SimonLausten,但是
Case
可能是一个强类型,就像在一个具有属性的类中一样?在这种情况下,您可以向类型中添加一个方法,将其自身格式化为字符串,然后调用
Cases.Select(case=>case.ToFormattedString()).ToList()
。这不就是逐个抓取每个单元格并将其格式化为字符串吗?然后这些行将被分开,而不是像我所希望的那样在列表的每个索引上。还是我错了?是的,我也尝试过,看起来像是简单的方法,但给出了这个错误:无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic.List”@SimonLausten这是因为案例不是字符串。我已经扩展了我的答案(即选择q.CaseTitle),这就是问题所在,我想要整行,以分隔;或者类似的东西。这可能吗?@SimonLausten什么类型的
案例
?它是SQL server中的我的表。它包含在CasesDB.dbml(LINQ到SQL类)中,这正是我想要的。感谢mate:)上面的LINQ版本:
返回cases.Select(c=>string.Join(“;”,new[]{c.Column1,c.Column2,c.Column3})).ToList()
。避免了笨拙的“创建列表并填充”代码。
var Cases = from q in db.Cases
    where q.Company == Company
    select q.Name;

List<string> lst = Cases.ToList();
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;
}