我需要從KeyValuePair<long,long>
讀取圖表的值,但我想爲某些點只顯示一個座標軸值(y),所以我試圖在第一個參數中添加null,但圖表無法顯示。如何爲圖表wpf只設置一個值爲KeyValuePair <long, long>?
我能做些什麼?謝謝。
我需要從KeyValuePair<long,long>
讀取圖表的值,但我想爲某些點只顯示一個座標軸值(y),所以我試圖在第一個參數中添加null,但圖表無法顯示。如何爲圖表wpf只設置一個值爲KeyValuePair <long, long>?
我能做些什麼?謝謝。
我猜你正在使用Collection
的KeyValuePair<long, long>
,這兩個值是x和y座標。對於僅設置值,我建議將其他值設置爲-1
。這樣可以,因爲你沒有使用ulong
。
說這些假設是正確的,你的收藏被稱爲Points
。
我會建議使用linq
其中y是你想要的值:
Points.Select(p => p.Value).ToArray();
或
Points.Select(p => p.Value).ToList();
這將返回一個新的數組或列表,這取決於,包含所有的y值。如果您需要x值,您將使用Key
而不是Value
。由於您只抓取該值,因此Key
(x)爲空,-1或其他值無關緊要。
更進一步,您可以選擇所有y值,其中x滿足條件。我猜這將基於您說
只有一個某些點
同樣,在Points
是收集軸值(Y)對你有用KeyValuePair<long, long>
int example = 5;
Points.Where(p => p.Key == example).Select(p => p.Value).ToArray();
或
Points.Where(p => p.Key != -1).Select(p => p.Value).ToArray();
延續(見第一個評論):
Queue<KeyValuePair<long, long>> queue = new Queue<KeyValuePair<long, long>>();
KeyValuePair<string, Queue<KeyValuePair<long, long>>> pair = new KeyValuePair<string, Queue<KeyValuePair<long, long>>>("test", queue);
pair.Value.Enqueue(new KeyValuePair<long, long>(-1, 5));
我沒有得到這個代碼的問題,工作正常。
可能的其它的解決方案:
取代具有KeyValuePair<long,long>
的。你可以有KeyValuePair<long,long[]>
。 long[]
將根據您的需要存儲一個或兩個值。唯一的限制是你必須假設如果數組長度爲1,那麼它只存儲y
而不是x
,否則如果數組的大小爲2,則假定它在{x,y}中,格式。
我沒有集合,這是我的結構--- KeyValuePair
_I嘗試queue.Enqueue(新的KeyValuePair
另一種選擇是商店使用'KeyValuePair
如果我沒有錯,你使用的是字典,如果是這樣的話,字典的第一個值是X值,第二個值是Y值。
在字典中,第一個值是鍵,必須是唯一的。我知道當你試圖添加兩個具有相同值的鍵時,dicitionary會拋出一個異常,但實際上我不知道是否可以在鍵中設置空值。
如果字典讓該鍵設置爲空值,那麼問題可能是它可以找到值,因爲有很多空鍵。
你可以嘗試使用另一種方式來存儲值,也許在一個結構中,如果你有很多點,那麼它的搜索速度會變慢。
嘗試可以爲空的類型('long?') – SLaks