DataGridView数据源上的通用Linq查询

时间:2010-11-04 14:58:47

标签: vb.net linq generics linq-to-objects

我想在DataGridView.DataSource上实现一个通用的Linq查询来检索一个带有idField的行。我搜索了MSDN,StackOverflow等...但是我找不到我想要的东西。有没有人知道如何实现它?

这是非通用代码,但我想使其工作无论DataSource的类型是什么(只要它实现IEnumerable我猜)和关键字段的名称和类型。

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

Dim ancienIndex As Integer = notesList.IndexOf(query)

noteList是一个List(Of Note),Note是我创建的一个简单的实体类,只有成员和属性

这是在VB中,但随意发送一些C#代码,我会翻译它。

1 个答案:

答案 0 :(得分:1)

不幸的是,您无法为任何数据源执行此操作。由于您要尝试与ID字段进行比较,而不是每个对象都有,您将无法进行比较。您需要做的是定义基类或具有ID属性的接口。然后,您可以将数据源转换为基类的IEnumerable。使用linqs Cast<>操作