2013-12-13 27 views
1

我有一個包含視圖的鏈表。我想將列表中的最後一個視圖元素分配給另一個視圖變量。c#中的LinkedList xamarin

這是我做過什麼: -

private readonly LinkedList<View> bufferedViews = new LinkedList<View>(); 
View myView = bufferedViews.RemoveLast(); 

也這樣: -

if (bufferIndex + 1 > sideBufferSize) 
{ 
    releaseView(bufferedViews.RemoveFirst()); 
} 

,但我得到一個錯誤說: -

Cannot convert from void to Android.Views.View 

回答

1

這不是一個Xamarin問題。你的代碼剛剛壞掉了。 RemoveFirstRemoveLast都是void方法 - 它們不是返回第一個/最後一個元素,它們只是刪除它們。

你需要使用FirstLast性能,安裝後再去掉第一個和最後一個值 - 假設你實際上刪除的價值。 (這不是從你的代碼是否真的清楚。)

你總是可以編寫擴展方法,做你想做的,但:

public static T FetchAndRemoveFirst<T>(this LinkedList<T> list) 
{ 
    T first = list.First.Value; 
    list.RemoveFirst(); 
    return first; 
} 

public static T FetchAndRemoveLast<T>(this LinkedList<T> list) 
{ 
    T last = list.Last.Value; 
    list.RemoveLast(); 
    return last; 
}