我敢肯定答案是否定的,但我很好奇,並且認爲我會問你的boffins只是爲了確定。C#表達式等於多個值
在SQL你可以說:
IF (a IN (x, y))
有沒有在C#中類似的東西?我知道你可以使用一個開關,但我正在尋找具體可能在if語句的東西由於有像多個表達式:
IF (a == b && c IN (x, y))
IF (a == b && c == (x || y))
編輯:好吧,我看我過於簡單的數組的例子是相當明顯的,我沒有想到它通過。怎麼樣,如果是更復雜的東西,如:
if (a.GetType() == typeof(MyClass1) || a.GetType() == typeof(MyClass2))
EDIT2:只是爲了澄清,這不是Is there a C# IN operator?重複的答案,這個問題不解決我的問題,因爲我曾經是,也許一點點的例子可憐,但這是我當時唯一能想到的關係。 Palani Kumar提供的答案是我正在尋找的答案。
編輯3:感謝所有人的加入。很明顯,有很多方法可以實現相同的結果(我現在也明白,他們幾乎是一樣的東西,只是表達方式不同),我也有由於您的輸入,能夠進一步閱讀每一個。我也設法找到this "if statements matching multiple values"的帖子,是的,我完全同意它也是我所問的副本。根據反饋,我不僅學到了很多,但成功地還實現了完美的解決方案之中:
public static bool In<T>(this T obj, params T[] list)
{
return list.Contains(obj);
}
什麼是'C'例如類型? –
爲了公平起見,我認爲@PalaniKumar的答案*與有標記的副本中的答案相同。創建一個集合並使用'.Any'與創建一個數組並使用'.Contains'基本相同。 –
@MattBurland謝謝馬特,昨晚我也反映了它,它確實開始有意義。在我問了我的問題之後,我確實找到了一些相關材料,但在此之前,當我進行了一系列搜索時,我無法找到任何這就是爲什麼我認爲答案是否定的,因此我詢問了 – Storm