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恰好是一個類型爲元組的List,而Item1是StoreID。得到了一個明確的清單,然後遍歷(非清晰)列表來獲取每個適用的項目。效率低下的是,對於每個不同的項目(StoreID),重複對(大)內部列表進行迭代。什麼是根據其獨特值遍歷列表的有效方式?
製作地圖'STOREID - > job',並遍歷列表一次。如果'storeID'尚未在地圖中,請添加新作業。否則將商店添加到作業的「storeID」中。 - 哦,這看起來很像C#,而不是C,所以我重複了它。 –
你的sSeparator似乎很奇怪,這是故意的。我懷疑之後會很難閱讀sStoreStockFeed中的結果。你可能會得到這樣的結果:A,2,3 | A,4,5B,1,2C,3,4 | C,6,7 ... – Casperah