我有一個對象,它有4個數組參數,都應該是相同的長度。如何輕鬆比較超過2個數組參數的長度?
public Foo(
int a,
int b,
type1[] arr1,
type2[] arr2,
type3[] arr3,
type4[] arr4
){ /* ... */ }
我要確保所有這些陣列都在構造相同的長度,但我顯然無法做到
if (!(arr1.Length == arr2.Length == arr3.Length == arr4.Length))
所以我
if (!(arr1.Length == arr2.Length && arr2.Length == arr3.Length &&
arr3.Length == arr4.Length))
去,但這看起來並不特別吸引人,如果我刪除了某個數組或其他東西,就不會那麼清楚。
我想通必須有使用LINQ來做到這一點對他們收集的好辦法,但我的陣列顯然不是在枚舉。然後我有了創造力(可能很愚蠢),並認爲我可以用長度初始化一個哈希集,並檢查它的長度是否爲1。是否有標準/更好的方法來檢查多個數組長度是否相等,或者我的方法與I一樣好可以得到?
正如你似乎已經想通了,你會很難找到比你現有的&&'方法更好的東西。有時候,我喜歡用單獨的行將支票分成多個負值; 'if(arr1.Length!= arr2。長度)拋出新的Up();如果(arr2.Length!= arr3.Length)拋出新的Up();'等等。 –
這些數組多久經常一起作爲一組傳遞?他們總是一起分配等等?如果是這樣,你有沒有考慮將它們隱藏在自定義類中? –
爲什麼要將相關數據作爲不同的數組傳遞,而不是隻有一個具有4個屬性的類的集合呢? –