通过使用实体框架获取列表中的行索引

use*_*186 4 c# entity-framework

我的清单中有5个数据。

我的清单

所以我想知道,我如何选择ID的行号?

var MyProductId= 135;
var SelectedDataRowNumber = context.SP_MyList.ToList()
                                   .Where(s=>s.Id==MyProductId)
                                   .FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

例如,“我的列表”有5个数据,如下所示,

Id-Name

6,Computer

135,KeyBoard

68,Mouse

98,Telephone

213,Laptop,
Run Code Online (Sandbox Code Playgroud)

MyProductId135因此它与配衬是Keyboard.It行计数数(指数)必须是“1”,因为0是计算机。

如何获得选定的ID的行数(索引)号?

PM.*_*PM. 5

如果您的列表已实现索引器,则可以按索引直接获取它。您可以找到如何实现Indexer

另一种方法可以如here中所述

上面的链接显示为:

从上方复制链接:

Person agedTwenty = myList.Where<Person>( x => return x.Age == 20; ).Single<Person>();
int index = myList.IndexOf(agedTwenty);
Run Code Online (Sandbox Code Playgroud)

或者

int index = myList.Where<Person>( x => return x.Age == 20; ).Select<Person,int>( x =>         
myList.IndexOf(x)).Single<int>();
Run Code Online (Sandbox Code Playgroud)

如果可能有多个结果,您可以这样做:

IEnumerable<Person> allAgedTwenty = myList.Where<Person>( x => return x.Age == 20; );
IEnumerable<int> indices = allAgedTwenty.Select<Person,int>( x => myList.IndexOf(x) );
Run Code Online (Sandbox Code Playgroud)

第一种情况只会为您提供一个int,第二种情况会为您提供一个int列表。