2010-05-18 58 views
2

抱歉,模糊的標題!C#對象數組 - 有條件驗證

我有一個具有大量成員變量的類(系統區,位點,...)

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類有一些看起來很有希望的函數,但我並不是很想定義'按鍵選擇器'函數和類似的東西。

任何建議或指針將不勝感激。

--- Alistair。

回答

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))); 
+0

@fishdump嘿,如果Yuriy的一段代碼看起來像希臘語,那麼您可能需要閱讀Linq ......包括System.linq將會公開大部分這些Array擴展方法。 如果你已經知道linq ..我現在閉嘴:) (我花了一個星期才弄清楚,第一次看到這個語法的時候,神們在做什麼) – Rusty 2010-05-18 18:08:46

0

而不是把東西放在一個數組中,也許你可以看看使用DataTable。

然後,您可以使用簡單的SQL語句進行搜索。

如果您有很多條目,這很有用。