更新ObservableCollection中的现有值

时间:2014-10-08 13:55:20

标签: c# .net xaml c#-4.0

我正在尝试更新&将值添加到ObservableCollection

我已经像这样定义了ObservableCollection;

public ObservableCollection<Tuple<string, int>> LogSummary
{
  get;
  set;
}

在我的班级中,我订阅了一个发送包含字母的字符串的事件:A,B,C,D,E或F.

如果我收到的字符串已经存在于集合中,我只想更新第二项(int),即我收到的字符串字母的数量。

如果我写这段代码

LogSummary.Add(new Tuple<string, int>(_stringFromEvent, intValue));

这只会在集合中添加一个新行,所以在我使用LogSummary.Add()之前我需要弄清楚如何检查字符串是否已经存在,如果是,它应该采用当前的int值并更新它而不是在集合中添加新行。

希望你理解我的问题! 提前致谢, 千斤顶

1 个答案:

答案 0 :(得分:4)

var existing = LogSummary.FirstOrDefault(t=>t.Item1 == _stringFromEvent)
if(existing != null)
{
     //update
      LogSummary[LogSummary.IndexOf(existing)] = 
                     new Tuple<string, int>(existing.Item1, intValue);
}
else
{
    //insert new
}