Skip to main content
 首页 » 编程设计

c#之如何将集合中的 bool 值更改为与其现有值相反的值

2024年01月29日29Leo_wl

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

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; 
}