更新ObservableCollection中的现有值

本文关键字:ObservableCollection 更新 | 更新日期: 2023-09-27 18:25:53

我正在尝试更新&向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值并更新它,而不是向集合中添加新行。

希望你能理解我的问题!提前感谢,Jack

更新ObservableCollection中的现有值

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
}