私は次のようなC#コードに取り組んでいます:
public class Item
{
public bool flag { get; set; }
public string itemName { get; private set;};
Item(string _name)
{
this.itemName = _name;
this.flag = false;
}
}
public class MainClass
{
public static void Main()
{
List itemList = new List<Item>();
itemList.Add(new Item("ProductA");
itemList.Add(new Item("ProductA");
itemList.Add(new Item("ProductB");
var itemGroups = from item in itemList group item by item.itemName;
foreach (var itemGroup in itemGroups)
{
foreach (Item i in itemGroup)
{
i.flag = true;
break;
}
}
}
}
ここで達成したいのは、同じグループ内の他のアイテムに触れずに、グループ内の 1 つのアイテムだけを変更することです。上記のコードから、itemName が "ProductA" の最初のアイテムのみにフラグが true に設定されていると予想されます。しかし、結果として、両方のアイテム (itemName "ProductA" を持つ) のフラグが true に設定されています。
私はlinqが初めてです。私が間違っていることはありますか?または、どうすればここで目標を達成できますか?
どうもありがとう!!!
ダグ