【问题标题】:List of Tuples to multi-dimensional array元组列表到多维数组
【发布时间】:2012-12-08 14:36:42
【问题描述】:

相关,但不重复(这是一种完全不同的语言,PHP 不是 C#):
How to create multi-dimensional array from a list?

我将如何将 'Tuple's 列表转换为 string[,]?

这是网络爬虫的一部分,但出于好奇,我正在搞乱列表和数组的转换。方法如下。

private string[,] getimages(string url)
    {
        List<Tuple<string, string>> images = new List<Tuple<string, string>>();
        string raw = client.DownloadString(url);
        while (raw.Contains("<a class=\"title \" href"))
        {
            raw = raw.Substring(raw.IndexOf("<a class=\"title \" href"));
            String link = raw.Substring(24, raw.IndexOf(">", 24) - 26);

            int startname = raw.IndexOf(">", 24) + 1;
            int endname = raw.IndexOf("</a>&#32;");
            String name = raw.Substring(startname, endname - startname);

            images.Add(new Tuple<string, string>(name, link));

            raw = raw.Substring(endname);
        }



}

我想返回“图像”,但转换为多维数组。

【问题讨论】:

  • 你能举一个元组是什么样子的例子吗?我假设Tuple&lt;string, string&gt;?
  • 能举个输入输出的例子吗?你试过什么?
  • 老实说,您尝试过什么?请给我们一些代码。
  • A string[,] 是一个二维字符串数组,而不仅仅是两个平行的字符串数组。你期望string[,] 包含什么?您是否期望/打算将其中一个维度的大小设为 2?此外,大多数 C# 开发人员会看到 Tuple&lt;string,string&gt; 并理解为“一对字符串”......使用 string[,] 并不意味着相同的含义。
  • 使用合适的 html 解析器为时不晚。您的代码看起来可能随时中断。 HtmlAgilityPack 非常适合这类事情。

标签: c# arrays list multidimensional-array tuples


【解决方案1】:

一个简单直接的方法是 for 列表:

string[,] result = new string[images.Count, 2];

for(int i=0; i<images.Count; i++)
{
  var tuple = images[i];
  result[i,0] = tuple.Item1;
  result[i,1] = tuple.Item2;
 }
 return result;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-17
    • 2014-11-26
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    相关资源
    最近更新 更多