C#如何判断队列中是否存在含特定属性值的对象
判断Queue中是否存在符合条件的对象
嘿,这个需求其实很好解决!因为Queue<T>实现了IEnumerable<T>接口,咱们直接用LINQ的扩展方法就能快速拿到需要的布尔判断结果。
核心实现方案
首先记得引用System.Linq命名空间(这是LINQ扩展方法的来源),然后用Any()方法就能完成判断:
using System.Linq; // 直接判断队列中是否存在符合条件的Order对象 bool hasMatchingOrder = queueSendOrder.Any(order => order.sCode == "Code1" && order.iNum == 1 );
简单说明
Any()方法会逐个检查队列里的Order对象,一旦找到第一个满足sCode="Code1"且iNum=1的对象,就会立刻停止遍历并返回true,不用遍历整个队列,效率还不错。- 如果遍历完整个队列都没找到符合条件的对象,就会返回
false。
额外小贴士(避免空引用异常)
如果你的queueSendOrder有可能为null,可以加上空合并运算符来避免报错:
bool hasMatchingOrder = queueSendOrder?.Any(order => order.sCode == "Code1" && order.iNum == 1 ) ?? false;
这样当队列是null时,会直接返回false,不会抛出NullReferenceException。
内容的提问来源于stack exchange,提问作者user6508956
相关产品推荐
相关产品推荐

