2
如何將以下foreach循環轉換爲linq等效項? 也foreach循環或linq表現更好?這裏的物品數量是有限的,可能在100秒內。提前致謝。將foreach循環轉換爲Linq表達式
ObservableCollection<ListItem> _ListItems = null;
string[] listItems = ListValueString.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
foreach (var lstItem in listItems)
{
var itm = new ListItem();
string[] listTexts = lstItem.Split(':');
itm.ListText = listTexts[0];
itm.ListId = Int32.Parse(listTexts[1]);
itm.IsActive = true;
if (_defaultString == Int32.Parse(listTexts[1]))
{
itm.IsInUse = true;
}
_ListItems.Add(itm);
}
就我個人而言,我不會試圖將這個foreach轉換爲linq表達式,它會讓我很難閱讀。 (糾正我,如果我錯了) – Jannik
命名或類型的問題:'_defaultString == Int32.Parse(listTexts [1])' –
爲了可讀性,請將現有for循環的主體歸入其自己的函數,例如作爲'靜態ListItem轉換(字符串lstItem)',然後可以適當地在LINQ'Select'中使用。 –