我試圖找到最好的方法來更新/對象可能是進一出不同的列表屈指可數的藏品最好的辦法
例子:
public class MyItem
{
public Guid Id { get; set; }
public string Name { get; private set; }
public string Status { get; private set; }
public MyItem(string name)
{
this.Id = new Guid();
this.Name = name;
}
public void UpdateStatus(string status)
{
this.Status = status;
}
}
public class OtherClass
{
public ObservableCollection<MyItem> ItemList1;
public ObservableCollection<MyItem> ItemList2;
public ObservableCollection<MyItem> ItemList3;
public UpdateStatus(Guid id, string status)
{
// Figure out which ItemList needs to be updated
var item = ItemList1.FirstOrDefault(s => s.Id == id);
if (item == null)
{
item = ItemList2.FirstOrDefault(s => s.Id == id);
if (item == null)
{
item = ItemList3.FirstOrDefault(s => s.Id == id);
if (item == null)
{
Debug.WriteLine("Unable to update Status");
return;
}
}
}
item.UpdateStatus(status);
}
}
我不喜歡嵌套,如果是這樣我敢肯定有一個更好的方法,但其週五和我的大腦是炒:(
我意識到,我可以像這樣代替嵌套IFS添加的東西:
public MyItem UpdatedStatus(ObservableCollection collection, Guid id)
{
return collection.FirstOrDefault(s => s.Id == id);
}
或
public bool UpdatedStatus(ObservableCollection collection, Guid id, string status)
{
var item = collection.FirstOrDefault(s => s.Id == id);
if (item != null)
{
item.UpdateStatus(status);
return true;
}
return false;
}
但似乎應該有一個更好的辦法
任何提示嗎?
這些集合可能包含數百個項目,其中更多項目在後者中,因此我試圖找到處理更新的最有效方法。
請不要用「C#」等來標題。這就是標籤的用途。 – 2012-03-23 15:59:33