c# 如何检查队列是否包含具有特定值的对象属性?

use*_*956 2 c# queue

如果队列包含在属性中具有特定值的对象,我想获取布尔值。

例如)

public class Order
{
    public string orderType { get; set; }
    public string sCode { get; set; }  
    public int iNum { get; set; }
    ...omit... 
}
Queue<Order> queueSendOrder = new Queue<Order>();
Run Code Online (Sandbox Code Playgroud)

那么,如何检查 Queue 是否包含 sCode="Code1", iNum=1 的对象呢?

谢谢。

Dav*_*idG 5

使用 LinqAny()扩展方法,这非常简单:

var containsCode1 = queueSendOrder.Any(o => o.sCode == "Code1");
var containsNum1 = queueSendOrder.Any(o => o.iNum == 1);
Run Code Online (Sandbox Code Playgroud)

或两者:

var containsCode1AndNum1 = queueSendOrder.Any(o => 
    o.sCode == "Code1"
    && o.iNum == 1);
Run Code Online (Sandbox Code Playgroud)

旁注:现在使用匈牙利表示法来表示类型被认为是不好的做法。所以sCode真的应该是Code并且iNum将会是Num(尽管我会选择一个更好的名字)