【问题标题】:How to make a string with array list iterable如何使带有数组列表的字符串可迭代
【发布时间】:2019-11-29 15:42:12
【问题描述】:

我有一个像下面这样的值

[['20190717','7347.00','7291.00','6929.00','7498.00','131','212761','1563195158.00'],['20190716','7291.00','7584.00','7205.00','7800.00','205','786281','5732513136.00'],['20190715','7584.00','7561.00','7262.00','7911.00','201','957135','7258611941.00'],['20190714','7561.00','7796.00','7407.00','7909.00','411','1715426','12970206490.00'],['20190713','7796.00','7428.00','7602.00','7799.00','468','2622089','20442582710.00'],['20190710','7428.00','7140.00','7070.00','7497.00','250','947330','7037099454.00'],['20190709','7140.00','7442.00','7070.00','7449.00','219','665235','4749481884.00'],['20190708','7442.00','7164.00','7300.00','7522.00','276','1171931','8721432059.00'],['20190707','7164.00','6882.00','6540.00','7226.00','324','1125954','8066782953.00']]

所以我想在foreach 语句中使用上述数据并访问数组项的每个值,例如item[0]。我试过这样,但这不是我想要的,我无法通过索引获得价值

var splited = value.Replace("[[", "[").Replace("]]", "]").Split(new string[] { "],"}, StringSplitOptions.RemoveEmptyEntries);

【问题讨论】:

  • var splited = value.Replace("]", "").Replace("'", "").Replace("[", "").Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries)
  • @Alex 我想将它们放入数组中。例如我想得到这样的:['20190717','7347.00','7291.00','6929.00','7498.00','131','212761','1563195158.00'] 并通过索引访问每个项目
  • 要考虑的一个选项可能是将' 替换为",然后将其解析为JSON(作为List<List<string>>)。

标签: c# asp.net arrays foreach


【解决方案1】:

建议在使用它之前“反序列化”它。由于您的示例看起来像 json,您可以添加对 nuget 包 NewtonSoft.Json 的引用并像这样反序列化:

string json = "[['20190717','7347.00','7291.00','6929.00','7498.00','131','212761','1563195158.00'],['20190716','7291.00','7584.00','7205.00','7800.00','205','786281','5732513136.00'],['20190715','7584.00','7561.00','7262.00','7911.00','201','957135','7258611941.00'],['20190714','7561.00','7796.00','7407.00','7909.00','411','1715426','12970206490.00'],['20190713','7796.00','7428.00','7602.00','7799.00','468','2622089','20442582710.00'],['20190710','7428.00','7140.00','7070.00','7497.00','250','947330','7037099454.00'],['20190709','7140.00','7442.00','7070.00','7449.00','219','665235','4749481884.00'],['20190708','7442.00','7164.00','7300.00','7522.00','276','1171931','8721432059.00'],['20190707','7164.00','6882.00','6540.00','7226.00','324','1125954','8066782953.00']]";
List<List<string>> deserializedList = JsonConvert.DeserializeObject<List<List<string>>>(json);
foreach (List<string> innerList in deserializedList)
{
    foreach (string item in innerList)
    {
        Console.WriteLine(item);
    }
}

【讨论】:

    猜你喜欢
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多