我想在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#代码,我会翻译它。
答案 0 :(得分:1)
不幸的是,您无法为任何数据源执行此操作。由于您要尝试与ID字段进行比较,而不是每个对象都有,您将无法进行比较。您需要做的是定义基类或具有ID属性的接口。然后,您可以将数据源转换为基类的IEnumerable。使用linqs Cast<>操作