Информация об изменениях

Сообщение Re: LINK EF C# от 01.04.2015 22:18

Изменено 01.04.2015 22:28 scale_tone

Здравствуйте, ronik, Вы писали:

R>Возникает вопрос как быть если размер List не известен?


Ох, ну как-то так:
var id = new List<int> { 12, 13, 14, 15 };

// splitting into pairs
var pairs = id.Select((value, index) => new { PairNum = index / 2, value })
    .GroupBy(pair => pair.PairNum)
    .Select(grp => grp.First().value.ToString() + "-" + grp.Last().value.ToString())
    .ToArray();

// querying
var query = db.Test.Where(t => pairs.Contains(t.HomeId.ToString() + "-" + t.GuestId.ToString()));


Понятно, что "размер List" не бесконечен, но вот у меня (на SQLExpress) дошло до 3000 элементов, и я не стал тестить дальше (устал ждать).
Здравствуйте, ronik, Вы писали:

R>Возникает вопрос как быть если размер List не известен?


Ох, ну как-то так:
var id = new List<int> { 12, 13, 14, 15 };

// splitting into pairs
var pairs = from i in Enumerable.Range(0, id.Count / 2) select id[i * 2] + "-" + id[i * 2 + 1];

// querying
var query = db.Test.Where(t => pairs.Contains(t.HomeId.ToString() + "-" + t.GuestId.ToString()));


Понятно, что "размер List" не бесконечен, но вот у меня (на SQLExpress) дошло до 3000 элементов, и я не стал тестить дальше (устал ждать).