У меня есть таблица данных, как показано ниже
Из этой таблицы данных я хочу фильтровать, как показано ниже. if silver,gold,iron != 'N' и silver_ref,gold_ref,iron_ref = 'Y'. Таким образом, таблица данных станет
Как я могу достичь с помощью linq
Я получаю это как DataTable и хочу изменить формат второй таблицы данных.





Структура ваших данных далека от идеала, но мы можем работать с тем, что у вас есть.
Один из способов получить желаемые результаты — это самостоятельно соединить таблицу с самой собой, сопоставив строки, отличные от "_ref", со строками "_ref". Затем предложение where может отфильтровать результаты, которые не соответствуют остальным требованиям.
Результат будет примерно таким:
var results =
from d1 in data
join d2 in data on (d1.Metal + "_ref") equals d2.Metal
where d1.value != "N" && d2.value == "Y"
select d1;
См. эту .NET Fiddle.
Вышеупомянутое не ограничивается металлами «золото», «серебро» и «железо».
не удалось найти реализацию шаблона запроса для типа источника. Соединение таблицы данных не найдено, возникает ошибка
Что ж, чтобы LINQ работал, источники данных должны быть IEnumerable<> или IQueryable<> определенного типа. Какой тип данных data в вашем коде? (Не связано: я обновил ответ выше, поменяв местами выражения в on ... equals ....)
Можете ли вы показать класс POCO для этой таблицы?