我想檢查值(它的類型是列表),如果它爲空,它將從循環的開始處重新開始,如果不是,則返回counter ++。我的意思是如果值是這樣的:"values": []
在循環開始時編譯回來。如何檢查列表<string>爲空
我嘗試了if (id==null) and also I used this one (id.Contains(""))
,但發生錯誤。 錯誤:索引超出範圍。必須是非負數且小於集合的大小。參數名稱:index(參數超出範圍的異常未處理)。
數據,我想檢查(當值是零)
{
"cid": "241",
"fnames": [
"id",
"name",
"hash",
"score",
"rank"
],
"values": [],
"tal": 0,
"sion": "v3"
}
全部數據(當值不爲null)
{
"cid": "64",
"fnames": [
"id",
"name",
"hash",
"score",
"rank"
],
"values": [
[
"126",
"126",
"126",
"1",
"2.77"
],
"tal": 0,
"sion": "v3"
}
代碼
foreach (DataRow row in dt.Rows)
{
string url = "http://hgsfe/<uid>?groups=<uid>
var test = url.Replace("<uid>", Convert.ToString(row[uid]));
System.Diagnostics.Process.Start(test);
string client = (new WebClient()).DownloadString(test);
var pi = JsonConvert.DeserializeObject<read_json>(client);
List<string> id = pi.values[0];
if (id==null) //also I used this one (id.Contains(""))
continue;
if (id.Contains(Convert.ToString(row[tid])))
{
counter++;
}
如果列表不包含任何字符串,它也不包含空字符串。我可以理解你爲什麼最初會這樣想,但試着多想一想,並且應該變得更清楚。 – hvd
嗯......其實,你有沒有確定pi.values包含任何項目?如果那個沒有,你不能訪問'pi.values [0]'來檢查它是否是空的。另外,「行」有多少個元素?可能'tid'超出範圍嗎? – hvd
您可以看到更多的代碼?這個'pi'是什麼? – dovid