我想知道如果一個方法來確定某個範圍的數組元素是否爲空。例如,如果數組被初始化爲具有值「」的10個元素,則如果數據稍後被分配給元素5,7,9;我可以測試元素0-3是否爲空,或者是否包含空字符串「」?C#:有沒有辦法確定一系列元素是否爲空?
回答
array.Skip(startIndex).Take(count).All(x => string.IsNullOrEmpty(x));
所以,如果你想查詢元素0-3:
array.Skip(0).Take(4).All(x => string.IsNullOrEmpty(x));
爲清楚起見,我在那裏留下Skip
。
編輯:使其Take(4)
,而不是3按在對方的回答喬納森的評論(現在在我Guffa的評論;))。
編輯2:根據下面的註釋,在OP想看看這些單元的任意匹配:
array.Skip(0).Take(4).Any(x => string.IsNullOrEmpty(x));
因此改變All
到Any
。
只檢查元素0-2。 – Guffa 2010-10-10 22:53:48
好吧,我認爲這是有道理的。但是,這不僅僅是檢查整個範圍是空白的嗎?我想我應該更具體。基本上我想要做的是確定該範圍內的任何元素是否包含空白 – Sinaesthetic 2010-10-10 23:03:11
@Sinaesthetic,修改後的答案,但使用「Any」運算符而不是「All」。 – 2010-10-10 23:10:59
bool is0to3empty = myArrayOfString.Skip(0).Take(4).All(i => string.IsNullOrEmpty(i));
不應該拿(4)? – 2010-10-10 22:50:50
@Jonathan是的,但我不認爲確切的數字是真正的問題在這裏。 – 2010-10-11 04:26:55
我擔心有人會看到Take(3),並且認爲它的意思是「將所有元素索引到3」。 – 2010-10-12 18:28:36
創建此擴展類,你可以從任何字符串數組稱之爲:
public static class IsEmptyInRangeExtension
{
public static bool IsEmptyInRange(this IEnumerable<string> strings, int startIndex, int endIndex)
{
return strings.Skip(startIndex).TakeWhile((x, index) => string.IsNullOrEmpty(x) && index <= endIndex).Count() > 0;
}
}
的最直接,最有效的是簡單地通過數組的那部分循環:
bool empty = true;..
for (int i = 0; i <= 3; i++) {
if (!String.IsNullOrEmpty(theArray[i])) {
empty = false;
break;
}
}
if (empty) {
// items 0..3 are empty
}
另一種替代方法是使用擴展方法進行循環:
bool empty = theArray.Take(4).All(String.IsNullOrEmpty);
- 1. 有沒有在jQuery中確定一個元素是否有類的方法?
- 2. 有沒有辦法通過系統調用來確定STDIN是否是TTY?
- 3. 有沒有辦法確定Java System.in是否是「交互式」?
- 4. 有沒有辦法確定JDBC事務是否有效?
- 5. 有沒有辦法確定JavaScript函數是否有副作用?
- 6. 有沒有辦法確定Firebase用戶的UID是否有效?
- 7. 有沒有辦法檢查兩個DOM元素是否相等?
- 8. 有沒有辦法看到元素是否可見,可點擊?
- 9. 有沒有辦法來檢查一個元素是否有鼠標懸停?
- 10. 有沒有辦法確定stdout是否指向控制檯?
- 11. 有沒有辦法確定輸入流是否只讀?
- 12. 有沒有辦法檢查RenderScrpt是否正確綁定了rs_allocation?
- 13. 有沒有辦法確定Convert.ToDateTime是否添加了年份?
- 14. 有沒有辦法確定neo4j數據庫是否已關閉?
- 15. 有沒有辦法確定頁面是否被壓縮?
- 16. 有沒有辦法確定Linux PID是否暫停?
- 17. 有沒有辦法確定任務是否被重新分配?
- 18. 有沒有辦法在.NET中檢查Bitmap是否爲空?
- 19. 有沒有辦法將XAML元素定義爲不可打印?
- 20. 有沒有辦法將Keyboard.FocusedElement設置爲特定的元素?
- 21. 如果沒有一系列if語句,是否有辦法實現這一點?
- 22. 有沒有辦法指定第一個元素* type *?
- 23. 有沒有辦法選擇一個類的特定元素?
- 24. 有沒有辦法選擇一個不是小孩的元素?
- 25. 有沒有辦法確定一年是否有Swift中的閏月?
- 26. 有沒有辦法斷言一個元素沒有類?
- 27. 有沒有辦法確定一個特定的Ajax是否仍在運行?
- 28. 有沒有辦法讓元素在GTM
- 29. 有沒有辦法指定一個「空的」C#lambda表達式?
- 30. 在Javascript中有沒有一種方法來確定是否沒有元素是焦點?
難道你不能簡單地用10個空值而不是10個空字符串來啓動數組嗎? (「」!= null) – 2010-10-10 22:45:31
我的第一個破解就是像if(Array.IndexOf(array,「」)<4),它看到前四個元素是否有空白條目。似乎有點笨重,但。 – Sinaesthetic 2010-10-10 22:45:39