為什么JArray.Contains
總是回傳false
,我做錯了什么?
var array = JArray.Parse("['abc', 'aaa']");
Console.WriteLine("1: " array.Contains("abc")); // false
Console.WriteLine("2: " array.Contains((JToken)"abc")); // false
uj5u.com熱心網友回復:
Contains
依賴IndexOf
then which use的實作(代碼在IndexOfItem
這里)。IndexOfReference
ReferenceEquals
由于Contains
隱式創建新JToken
參考的呼叫,這些參考是不同的,函式回傳false
如果您Contains
使用實際在陣列中的參考進行呼叫,它將回傳true
:
var array = JArray.Parse("['abc', 'aaa']");
var first = array[0];
Console.WriteLine("1: " array.Contains("abc")); // false
Console.WriteLine("2: " array.Contains((JToken)"abc")); // false
Console.WriteLine("3: " array.Contains(first)); // true
uj5u.com熱心網友回復:
嘗試這個
var array = JArray.Parse("['abc', 'aaa']");
var data = array.Any(x => x.Value<string>() == "abc");
Console.WriteLine(data);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/483196.html
上一篇:是否有與VisualStudio2022.Net6.0兼容的Microsoft.Express.Drawing版本?