У меня есть два DataTables,Linq для сравнения двух DataTables и фильтрации данных
Id Name
1 Alex
2 Hiro
и мой второй DataTable является
Field | 1 | 1_Value | 2 | 2_Value
Salary | 123.4| Good | 245 | Bad
CTC | 25.4 | Bad | 300 | good
первый идентификатор таблицы значений 1, 2 представляют собой столбец второй таблицы. Я хочу сравнить обе таблицы с помощью Id - столбец отношения с помощью LINQ и мой ожидается, фильтрованный выход должен выглядеть
[{
"Id" : 1 , "Name": "Alex",
"data" : [123.4, 25.4] ,"values":["Good" ,"Bad"]},
{
"Id" : 2 , "Name": "Hiro",
"data" : [245, 300] ,"values":["Bad","Good" ]}
]
Мой код попытка использует Еогеасп петли как
if (ds.Tables[1].Rows.Count > 0)
{
var comparisonDetail = (from DataRow dataRow in ds.Tables[1].Rows
select new cls.MyBaseClass()
{
ID = Convert.ToInt64(dataRow["ID"]),
Name= Convert.ToString(dataRow["Name"])
}
).ToList();
foreach (var vId in comparisonDetail)
{
foreach(var vRow in ds.Tables[2].Rows)
{
vId.Data = vRow.value.
}
}
Как я могу добиться этого с помощью C# linq? Помощь будет оценена
Почему вы формируете вторую таблицу данных, как это? Сначала вы должны попытаться создать более нормализованную структуру данных. –
DataSets и DatTables поддерживают отношения, что означает, что вам действительно не нужно ничего делать, чтобы присоединиться к двум связанным таблицам. Вторая таблица, однако, выглядит поворотной, что делает ее практически непригодной. Если его исходным источником является таблица «EmployeeData» с полями Salary, CTC, просто загрузите * эту * таблицу и создайте отношение внешних ключей между ними. –