C# 如何从查询而不是foreach循环中检索数据?

C# 如何从查询而不是foreach循环中检索数据?,c#,C#,我正在尝试从查询中获取数据,我在foreach方面很幸运,但我不想为了获取数据而循环 我如何获取数据的示例: using (var db = new VeterinaryModelContainer()) { var owner = from b in db.Owners orderby b.Surname select b; var pets = from b in db.Pets s

我正在尝试从查询中获取数据,我在
foreach
方面很幸运,但我不想为了获取数据而循环

我如何获取数据的示例:

using (var db = new VeterinaryModelContainer())
{
    var owner = from b in db.Owners
                orderby b.Surname
                select b;
    var pets = from b in db.Pets
               select b;
    foreach (var OwnerName in owner)
    {
        Console.WriteLine(String.Format("{0,-10} | {1,-10} |", 
            OwnerName.Surname, 
            OwnerName.Forename));
    }
}

如果您期望的内容有限,比如一个结果项,只需使用
.FirstOrDefault()
,下面是一个示例:


如果您希望有多行,循环是一种很好的方法。

如果您坚决反对ForEach循环,我想您可以摆脱它。更改此项:

foreach (var OwnerName in owner)
{
    Console.WriteLine(String.Format("{0,-10} | {1,-10} |", 
        OwnerName.Surname, 
        OwnerName.Forename));
}
对此

Console.WriteLine
(
    string.Join
    (
        Environment.NewLine, 
        owner.Select
        (
            o => string.Format("{0,-10} | {1,-10} |", o.Surname, o.Forename)
        )
    )
);

不确定它是否提高了可读性,但我们肯定把ForEach踢到了尽头

甚至不知道它是如何工作的,代码中没有显示名为
owner
的集合。在哪里定义了
owner
?一旦获得数据,您将如何处理它?您好,欢迎来到SO。请阅读,然后提供一个。很抱歉,我在“所有者查询”中添加了一个。仍然无法解决如何在不需要foreach的情况下获取数据的问题,谢谢。因此,您正在打印查询结果。你不想做的事?你到底想达到什么目的?