Get Row Index in a list by using entity framework

前端 未结 2 970
终归单人心
终归单人心 2020-12-20 21:22

I have 5 datas in my list.

MyList

So i want to know , how can i get selected Id\'s Row Number ?

var MyProductId= 135;
var Se         


        
相关标签:
2条回答
  • 2020-12-20 22:12

    You can get it directly the element by Index if your list has implemented indexer. You can find that How to implement Indexer.

    Another way could be as described in Here.

    The above link shows it like:

    COPIED From Above link:

    Person agedTwenty = myList.Where<Person>( x => return x.Age == 20; ).Single<Person>();
    int index = myList.IndexOf(agedTwenty);
    

    or alternatively

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

    In case there can be more than one result you'd do this:

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

    The first case will get you only one int and the second case will leave you with a list of ints.

    0 讨论(0)
  • 2020-12-20 22:18

    If you want the count you need to 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()});
    

    This gives you the output

    Id = 135
    Count = 3 //depending on the actual count
    

    alternative solution, if you want to output id, name and 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()
                                };
    

    Regarding your comment: is this the result you are expecting: http://abload.de/img/so1j5rta.jpg ?

    0 讨论(0)
提交回复
热议问题