Итерация DataView для обновления - PullRequest
0 голосов
/ 18 июля 2010

У меня есть DataView, который фильтрует

inputView.RowFilter = "isnull(" + ID1 + ",'')<>'' and isnull(" + reason + ",0)=0";

после этого фильтра я должен обновить столбец "IsVerified" inputView до "1"

Есть ли что-то в LINQ для выполнения следующего?

inputView.RowFilter.ForEach(x=>x.Field<IsVerified> =1);

1 Ответ

1 голос
/ 18 июля 2010

Если вы хотите использовать LINQ в вашем DataView, вам придется создать свой собственный метод расширения в DataView.В DataView изначально нет метода. ToList(), в котором определяется. ForEach().

Создайте метод расширения для DataView.

public static class DataViewExtensions
{
    public static List<DataRowView> ToList(this DataView v)
    {
        List<DataRowView> foo = new List<DataRowView>();

        for (int i = 0; i < v.Count; i++)
        {
            foo.Add(v[i]);
        }
        return foo;
    }

}

Ваш DataView теперь можно назвать так:

inputView.ToList().ForEach(x=>x["IsVerified"]=1);

Некоторые разработчики могут предпочесть полный оператор .NET foreach (var x in y), но это будет то же самое.

Полная консольпро-концепт приложения: http://pastebin.com/y9z5n6VH

...