Общий запрос Linq к источнику данных DataGridView - PullRequest
0 голосов
/ 04 ноября 2010

Я хотел бы реализовать общий запрос Linq для DataGridView.DataSource, чтобы получить строку с idField. Я выполнил поиск в MSDN, StackOverflow и т. Д., Но не смог найти то, что искал. У кого-нибудь есть идеи о том, как я мог бы это реализовать?

Это неуниверсальный код, но я бы хотел, чтобы он работал независимо от типа источника данных (до тех пор, пока он реализует IEnumerable), а также от имени и типа поля ключа.

Dim query = (From note In notesList _
            Where note.IdNote = mIdNoteSelectionne _
            Select note).FirstOrDefault()

Dim ancienIndex As Integer = notesList.IndexOf(query)

noteList - это список (из заметок), Note - это простой класс сущностей, который я создал, только члены и свойства

Это на VB, но не стесняйтесь присылать код C #, я его переведу.

1 Ответ

1 голос
/ 04 ноября 2010

К сожалению, вы не сможете сделать это для любого источника данных.Поскольку вы пытаетесь сравнить с полем идентификатора то, что есть не у каждого объекта, вы не сможете.Что вам нужно сделать, это определить базовый класс или интерфейс, который имеет свойство ID на нем.Затем вы можете преобразовать источник данных в IEnumerable вашего базового класса.с использованием оператора linqs Cast <>.

...