Я работаю с DataSet
, который содержит две таблицы, из которых я пытаюсь получить данные из LINQ.Как фильтровать коллекцию с помощью LINQ to DataSet
Я изо всех сил пытаюсь понять синтаксис того, как возвращать записи, соответствующие условиям.
Пример:
Вот эти две таблицы:
Этот запрос соединяет эти две таблицы (Пункт Z будут отфильтрованы)
private void ParseFooBar()
{
....
var fooBars = from item in fooBarItems
join data in fooBarData on item["FooBar_Id"] equals data["FooBar_Id"]
where (new[] {"A","B","C"}).Contains(item["id"])
select new
{
id = item["id"],
description = item["description"],
wat = data["wat"],
foo = data["foo"]
};
}
Это коллекция, полученная из вышеуказанного запроса.
Вопрос: Как вернуть только Foo элементы?
Обратите внимание, что элементы Foo имеют в своей первой строке/записи значение, отличное от нуля, в то время как элементы Bar не имеют ненулевого значения в первой строке/записи. Используя тот факт, что все элементы Foo будут иметь по крайней мере один ненулевое значение в столбце foo, а элементы Bar никогда не будут иметь ненулевого значения в столбце foo, как я могу обновить вышеуказанный запрос, чтобы запрос возвращал только элементы Foo ? Аналогично, как я могу обновить запрос, чтобы он возвращал только элементы Bar?
Мне нравится ваша идея с прилагаемой лямбдой - похоже, что это сработает, но это не так.Результат вашего обновленного запроса возвращает коллекцию, отличную от оригинала. Странный. – Jed
@Jed: О, сделал опечатку. Должно быть 'f.foo! = Null', а не' '' '. Исправлено. –