我有一个简单的小代码片段让我感到沮丧:
HashSet<long> groupUIDs = new HashSet<long>();
groupUIDs.Add(uid)? unique++ : dupes++;
在编译时,它会生成错误:
只有赋值、调用、递增、递减和新对象表达式可以用作语句
HashSet.Add
被记录为返回一个布尔值,因此三元 (?) 运算符应该可以工作,这看起来是一种完全合法的方法来跟踪我添加到哈希集中的唯一和重复项目的数量。
当我将其重新格式化为 if-then-else 时,它工作正常。
谁能解释这个错误,如果有办法作为一个简单的三元运算符来做到这一点?