1

私はLINQステートメントを本当に嫌うので、誰かがこれら2つのステートメントを統合する方法を見つけるのを手伝ってくれるなら、私は永遠に感謝するでしょう:

public IList<SomeType> getSomeTypes(string id){
        string itemName = (from item in _itemcollection
                    where item.id.Equals(id)
                    select item.name).FirstOrDefault();
        return (from item in _itemcollection
                item.name == itemName
                select item)
               .ToList();

idは一意のIDであり、これは_itemcollectionがIQueryableです。

目標は、IDに一致するアイテムの名前(一意)を取得してから、同じ名前(多くのアイテム)を持つすべてのアイテムを見つけることです。

4

2 に答える 2

1
public IList<SomeType> getSomeTypes(string id) {

  return (from item1 in _itemcollection
          join item2 in _itemcollection on item1.name equals item2.name
          where 
            item1.id.Equals(id)
          select item2).ToList();

}
于 2012-09-12T20:23:04.783 に答える
1

これらの場合にletを使用するか、単にインライン化するのが好きです

from item in _itemcollection
let match = _itemcollection.FirstOrDefault(x => x.id.Equals(id))
let itemName = match == null ? '' : match.name
where item.name == itemName 
select item
于 2012-09-12T20:48:19.337 に答える