[英]Compare multiple strings in C#
我希望能夠相互比較多個字符串,如果它們都相等,則返回true
。 如果任何字符串等於“ N / A”,則在比較中將忽略它們。 例如:
string1 = "hi";
string2 = "hi";
string3 = "hi";
string4 = "N/A";
將返回true
,但是:
string1 = "hi";
string2 = "hey";
string3 = "hi";
string4 = "hi";
將返回false
。
謝謝你的幫助。
if (myStrings.Where(s => s != "N/A").Distinct().Count() > 1)
假設您已將字符串存儲在數組或列表之類的Enumerable.All
中,則可以使用Enumerable.All
:
string first = strings.FirstOrDefault(s => s != "N/A");
bool allEqual = first == null || strings.All(s => s == "N/A" || s == first);
說明 :您可以將所有字符串與您選擇的一個字符串(我取第一個)進行比較,如果一個字符串不同,則allEqual
必須為false。 我需要使用FirstOrDefault
因為所有字符串都可能是“ N / A”或列表為空,那么First
將引發異常。
這個問題已經回答了,但是我想我將陳述最明顯的代碼來做到這一點:
bool notEqual = false;
for (int i = 0; i < list.Count - 1; i++) {
for (int j = i + 1; j < list.Count; j++) {
if (!(list[i].Equals(list[j])) {
notEqual = true;
break;
}
}
}
這個想法很簡單。 對於第一個元素,您必須查看下一個(長度-1)元素。 但是,對於第二個元素,您已經將其與第一個元素進行了比較,因此您將查看下一個(長度-2)元素。 您的長度為1-因為此時您將比較倒數第二個和最后一個元素,這是最終可能的比較。
無論如何,以上答案都更為簡潔/優雅。 這只是為了向您展示在最基本的C#方面實際發生的情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.