C#对象数组 - 条件验证

时间:2010-05-18 17:44:16

标签: c# .net arrays

对于模糊的标题感到抱歉!

我有一个包含许多成员变量的类(系统,区域,站点......)

public sealed class Cello
{
    public String Company;
    public String Zone;
    public String System;
    public String Site;
    public String Facility;
    public String Process;
    //...
}

我有一个这类对象的数组。

private Cello[]   m_cellos = null;
// ...

我需要知道数组是否包含具有相同站点但具有不同系统,区域或公司的对象,因为这种情况是非法的。我有各种其他检查,但它们都是类似的。

Array类有许多看起来很有前途的函数,但我不是很擅长定义'key selector'函数等等。

任何建议或指示都将不胜感激。

--- Alistair。

2 个答案:

答案 0 :(得分:5)

bool illegalCellos = m_cellos
    .Any(c => m_cello
        .Any(nc => nc.Site == c.Site && 
            (nc.Zone != c.Zone || nc.System != c.System || nc.Company != c.Company)));

答案 1 :(得分:0)

您可以考虑使用DataTable,而不是将数据放入数组中。

然后,您可以使用简单的SQL语句搜索它。

如果你有很多条目,这很有用。