我的列表中有5个数据。
MYLIST
所以我想知道,我怎样才能选择Id的行号?
var MyProductId= 135;
var SelectedDataRowNumber = context.SP_MyList.ToList()
.Where(s=>s.Id==MyProductId)
.FirstOrDefault();
例如, 我的列表有5个数据如下,
Id-Name
6,Computer
135,KeyBoard
68,Mouse
98,Telephone
213,Laptop,
MyProductId
为135
,因此它与Keyboard匹配。行数(索引)必须为“1”,因为0为计算机。
如何选择Id的行数(索引)编号?
答案 0 :(得分:4)
如果列表已实现索引器,则可以通过索引直接获取元素。你可以找到How to implement Indexer。
另一种方式可以如Here中所述。
以上链接显示如下:
从上方链接:
Person agedTwenty = myList.Where<Person>( x => return x.Age == 20; ).Single<Person>();
int index = myList.IndexOf(agedTwenty);
或者
int index = myList.Where<Person>( x => return x.Age == 20; ).Select<Person,int>( x =>
myList.IndexOf(x)).Single<int>();
如果可以有多个结果,你可以这样做:
IEnumerable<Person> allAgedTwenty = myList.Where<Person>( x => return x.Age == 20; );
IEnumerable<int> indices = allAgedTwenty.Select<Person,int>( x => myList.IndexOf(x) );
第一种情况只会给你一个int,第二种情况会给你一个整数列表。
答案 1 :(得分:1)
如果你想要计数你需要groupBy
var SelectedDataRowNumber = context.SP_MyList.ToList()
.GroupBy(x = x.Id)
.Where(s=>s.Key == MyCustomerId )
.Select(x => new {Id = x.Key, Count = x.Count()});
这为您提供了输出
Id = 135
Count = 3 //depending on the actual count
备选解决方案,如果要输出id,name和count:
//"items" is my custom list I created to reflect your data
var SelectedDataRowNumber = from x in items
group x by new {x.Id, x.Name} into g
where g.Key.Id == 135
select new
{
ID = g.Key.Id,
Name = g.Key.Name,
Count = g.Count()
};
关于您的评论:这是您期望的结果:http://abload.de/img/so1j5rta.jpg?