string sStoreStockFeed = "";
string sSeparator = "";
var distinctStoreIDList = skuStoreStockLevels.Select(x => x.Item1).Distinct();
foreach (var storeID in distinctStoreIDList)
{
foreach (var item in skuStoreStockLevels)
{
if (item.Item1 == storeID)
{
// add this one to a job for this store
sStoreStockFeed += sSeparator + item.Item1.ToString() + "," + item.Item2.ToString() + "," + item.Item3.ToString();
sSeparator = "|";
}
}
// some code to process the string before moving on
sStoreStockFeed = "";
sSeparator = "";
}
上記のコードスニペットでは、skuStoreStockLevelsはたまたまタイプTupleのリストであり、Item1はStoreIDです。個別のリストを取得したら、(個別ではない)リストを繰り返して、該当するすべてのアイテムを取得します。非効率なのは、(大きな)内部リストが個別のアイテム(StoreID)ごとに繰り返し繰り返されることです。