0

谁能帮助如何使用 linq(sql 中的“where in”)使用关联搜索?

Linq 搜索如下,

1. select * from tablename where code = 'code1'
`string[] numbers = { "one", "two", "three", "four" };

string searchNumber = "two";
var number = from number1 in numbers
                     where number1 == searchNumber
                     select number1;

foreach (var n in number)
    Console.WriteLine(n);

        Console.ReadLine();`

如何使用 LINQ 搜索代码集?

2. select * from tablename where code in ('code1','code2')
4

5 回答 5

2

对于第一个答案,请使用此

var result = tablename.Where(x => x.code == "code1");

对于第二个答案使用这个

List<string> str = new List<string>(){ "code1" , "code2" };

var result = tablename.Where(x => str.Contains(x.code));
于 2012-08-09T12:23:08.230 回答
1

尝试一些类似的东西。

string[] codes = { "code1", "code2" };
var selections = tablename.Where(x => codes.Contains(x.code));
于 2012-08-09T12:22:21.503 回答
0

你需要颠倒你思考这个问题的方式。询问 numbers.Contains(searchNumber)。就像是:

var result = from n in numbers
                 where numbers.Contains(searchNumber)
                 select n;
于 2012-08-09T12:26:23.740 回答
0

这取决于你反对什么。如果您使用的是实体框架,那么您将需要查找创建一个 In 语句。如果您只是对 IEnumerable 使用 Linq,则 contains 会做您想做的事。

原因是如果您对数据库执行此操作,则提供程序必须已实现包含。实体框架没有 IIRC。

于 2012-08-09T12:22:37.450 回答
0
string[] searchNumber = {"two","one"};
        var number = from number1 in numbers
                     where searchNumbers.Contains(number1)
                     select number1;

        foreach (var n in number)
        {
            Console.WriteLine(n);
        }

        Console.ReadLine();

这应该够了吧。

于 2012-08-09T12:21:17.427 回答