2015-01-09 49 views
-2

我想檢查List<Tuple<T, T>>是否爲空。使用these技術檢查,如果List<string>是空的,我已經注意到,檢查的一個不是在我的情況下工作:檢查列表<Tuple<T, T>>是否爲空

List<Tuple<byte, string>> intermediateResult = new List<Tuple<byte, string>>(); 

//not working 
if(intermediateResult!= null) 
    Console.WriteLine("not empty"); 
else 
    Console.WriteLine("empty"); 

//working 
if(intermediateResult.Any()) 
Console.WriteLine("not empty"); 
else 
Console.WriteLine("empty"); 

誰能告訴什麼,先檢查是不是工作?不工作部分的

+3

你在期待什麼? 'intermediateResult'永遠不會爲空,因爲您剛分配了一個新實例。 –

+0

?它不是null,因爲你剛剛新的? – StuartLC

+0

是的,我剛剛測試了網站的例子,它也不在那裏工作。 – gotqn

回答

1

解釋: -

它不工作,因爲你是intializtion您的收藏這樣

List<Tuple<byte, string>> intermediateResult = new List<Tuple<byte, string>>(); 

當你intialize這樣比intermediateResult不爲空。這是真的。

0

的代碼

List<Tuple<byte, string>> intermediateResult = new List<Tuple<byte, string>>(); 

該行創建的List<Tuple<byte, string>>新實例,並將其分配給intermediateResult - 如此明顯intermediateResult不執行此行之後空。

1

用這行代碼檢查列表是否已被分配。所以你正在檢查新命令的正確行爲。 空的列表在內存中仍然有地址。

相關問題