【问题标题】:How to write a ContainsAll query using LINQ? (C# LINQ-TO-SQL) [duplicate]如何使用 LINQ 编写 ContainsAll 查询? (C# LINQ-TO-SQL)[重复]
【发布时间】:2009-05-19 03:31:44
【问题描述】:

假设我有以下内容

var mustHave = new int [] { 1, 2 }

还有一个名为 db.Numbers 的表

public class Number
{
     public int id;
     public int number;
}

填充

Numbers.add(new Number(){id=8,number=1});
Numbers.add(new Number(){id=8,number=2});
Numbers.add(new Number(){id=8,number=3});
Numbers.add(new Number(){id=9,number=1});
Numbers.add(new Number(){id=9,number=3});

我想获取与 mustHave 变量中的 all 数字相关联的所有 id。例如,查询必须返回 id=8 而不是 id=9。实际情况要复杂得多,使用 Linq-To-Sql 对数据库进行查询。

【问题讨论】:

    标签: c# .net linq-to-sql


    【解决方案1】:

    试试这个:

    var numbers = Numbers.FindAll(n=>n.id=8);
    var mustHave= new int[numbers.Count][2];
    int counter = 0;`
    foreach(var number in numbers)
    {
        mustHave[counter][0]=number.id;
        mustHave[counter][1]=number.number;
        counter++;
     }
    

    【讨论】:

    • 感谢您的回答,但恐怕我需要在一个查询中完成,而不使用循环。
    【解决方案2】:

    如果你在 LINQtoSQL 中使用 DataContext 做某事,试试这个:

    var mustHave = new int [] { 1, 2 };
    var items = 
      from x in DataContext.SomeTable
      where mustHave.Contains(x.SomeProperty)
      select x;
    

    【讨论】:

    • 您的查询将返回与至少一个 mustHave 数组项相关联的所有 id。我真正想做的是一个返回与所有 mustHave 数组项关联的 id 的查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多