我有一个集合,我想更改集合中某个项目的值。这是我的做法:

private ObservableCollection<Phrase> _phrases =
   new ObservableCollection<Phrase>();

public ObservableCollection<Phrase> Phrases {
   get => _phrases;
   set => SetProperty(ref _phrases, value);
}

var newState =
   Phrases.FirstOrDefault(x => x.PhraseId == phraseId).F3
   = !Phrases.FirstOrDefault(x => x.PhraseId == phraseId).F3;


有没有更简单的方法可以使用LINQ做到这一点,或者这是唯一的方法吗?

最佳答案

我会避免两次查询集合

Phrase item = Phrases.FirstOrDefault(x => x.PhraseId == phraseId);
if (item != null)
{
    item.F3 = !item.F3;
}

关于c# - 如何将集合中的 bool 值更改为与现有值相反的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59089735/

10-10 17:00