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

时间:2018-04-26 16:22:22

标签: c# queue

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

e.g)

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>();

然后,如何检查Queue是否包含,如果包含任何具有sCode =“Code1”的对象,iNum = 1?

谢谢。

1 个答案:

答案 0 :(得分:3)

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

var containsCode1 = queueSendOrder.Any(o => o.sCode == "Code1");
var containsNum1 = queueSendOrder.Any(o => o.iNum == 1);

或两者:

var containsCode1AndNum1 = queueSendOrder.Any(o => 
    o.sCode == "Code1"
    && o.iNum == 1);

旁注:这些天使用匈牙利表示法来表示类型被认为是不好的做法。所以sCode应该只是CodeiNum应该是Num(虽然我会选择一个比这更好的名字)