2011-11-21 59 views
1

kriteriji對象是現在的List<Kriteriji>LINQ發現在哪個位置是我在列表

var doc = kriteriji.Where(k => k.Ean == txtEan.Text 
        && k.PredmetObravnave == acPredmetObravnave.Text 
        && k.Tse == txtTse.Text 
        && k.DejanskaKolicina == Convert.ToInt32(txtKolicina.Text) 
        && k.KratekNazEnoteMere == acKNEnotaMere.Text 
        && k.OznakaLokacije == acOznakaLokacije.Text 
        && k.OznakaZapore == txtZapora.Text 
        && k.SarzaDob == txtSarzaDobavitelja.Text 
        && k.Sarza == txtSarza.Text 
        && k.DatumVelOd == datumOd 
        && k.DatumVelDo == datumDo).FirstOrDefault(); 

類型,當我得到doc我怎麼能知道這List<kriteriji>位置是什麼?我需要現在,如果是在第一,第二,...

回答

3

你可以使用一個重載選擇,將採取索引和Kriteriji。

這裏是documentation

然後,您可以選擇一個具有Index屬性和Doc屬性的匿名對象。如果您使用IndexOf,當您已經擁有該數據時,這將導致整個列表中的其他搜索。

0

你可以找到與指數:

kriteriji.IndexOf(doc.First()); 
+1

它看起來像沒有doc.First(),但doc指數 - 因爲它返回文檔是1元,但沒有收集 – Vitaliy

1

試試這個:我想你可以創建一個(索引

var position = kriteriji.IndexOf(doc); 
3

,價值)keyvaluepaire對象,然後像

 var doc = kriteriji.Select((value, index) => new { index, value }) 
      .Where(k => k.value.Ean == txtEan.Text 
       && k.value.PredmetObravnave == acPredmetObravnave.Text 
       && k.value.Tse == txtTse.Text 
       && k.value.DejanskaKolicina == Convert.ToInt32(txtKolicina.Text) 
       && k.value.KratekNazEnoteMere == acKNEnotaMere.Text 
       && k.value.OznakaLokacije == acOznakaLokacije.Text 
       && k.value.OznakaZapore == txtZapora.Text 
       && k.value.SarzaDob == txtSarzaDobavitelja.Text 
       && k.value.Sarza == txtSarza.Text 
       && k.value.DatumVelOd == datumOd 
       && k.value.DatumVelDo == datumDo).FirstOrDefault(); 

,那麼你可以得到一個像

Console.WriteLine(doc.index);