Как получить id строки DataTable по совпадению в столбце
Есть таблица с данными.
DataTable dt = new DataTable("Main");
dt.Columns.Add(new DataColumn("id", typeof(int)));
dt.Columns.Add(new DataColumn("Col1", typeof(string)));
dt.Columns.Add(new DataColumn("Col2", typeof(string)));
dt.Columns.Add(new DataColumn("Col3", typeof(string)));
И есть данные, которые нужно добавить в таблицу, но не новые строки, а отредактировать старые.
Нужно получить (id где Col2 == "text1") чтобы я потом мог вставить ("textUpdate" в столбец Col3 полученного id)
Логику можно и изменить, допустим сразу установить текст "textUpdate" в столбец Col3 где Col2 == "text1"
Помогите знающие.
P.S.
Вот так есть сейчас
id;Col1;Col2;Col3
1;str1;text1;oldText1;
2;str2;text2;oldText2;
3;str3;text3;oldText3;
4;str4;text4;oldText4;
Чтобы стало вот так
id;Col1;Col2;Col3
1;str1;text1;textUpdate;
2;str2;text2;oldText2;
3;str3;text3;oldText3;
4;str4;text4;oldText4;
в sql я бы сделал вот так
select id from dt where Col2 = 'text1';
P.P.S. Сделал вот так вот
int id = Convert.ToInt32(dt.AsEnumerable()
.Where(r => r.Field<string>("Col2") == "text1")
.Select(x => x.Field<string>("id")).First());
Но я практически уверен, что это можно сделать как-то проще.
И дополнительный вопрос.
Как получить не значение столбца id, а id строки самой DataTable dt.Rows[0][1]? В случае с примером это 0 id таблицы?
P.P.P.S )
id не получилось взять, но добавить в таблицу данные сразу получилось.
dt.AsEnumerable()
.Where(r => r.Field<string>("Col2") == "text1")
.Select(r => r["Col3"] = "textUpdate").ToList();
Без .ToList() почему-то не добавляет.