C#无法从string []转换为string

时间:2011-03-18 16:29:46

标签: c#

我有这个方法,并在行word.Add(rows)上得到上述错误;有人可以帮忙吗?谢谢 - 本

private static IEnumerable<string> LoadWords(String filePath)
    {

        List<String> words = new List<String>();

        try
        {
            foreach (String line in File.ReadAllLines(filePath))
            {
                string[] rows = line.Split(',');

                words.Add(rows);
            }

        }
        catch (Exception e)
        {
            System.Windows.MessageBox.Show(e.Message);
        }

            return words;
    }

8 个答案:

答案 0 :(得分:6)

而不是

words.Add(rows);

使用它:

words.AddRange(rows);

rows是一个包含多个字符串的字符串数组,因此您必须使用AddRange()添加它们。

答案 1 :(得分:4)

将其更改为此

words.AddRange(rows);

问题在于您要添加一个项目数组,而不是单个元素。

添加实现System.Collections.Generic.IEnumerable<T>

的集合时使用AddRange()

请参阅此处的文档http://msdn.microsoft.com/en-us/library/z883w3dc.aspx

答案 2 :(得分:1)

您正在尝试将字符串数组添加到带有字符串的列表中。

尝试words.AddRange(rows);

答案 3 :(得分:0)

您使用的是错误的方法。你想要AddRange方法。

words.AddRange(rows);

答案 4 :(得分:0)

试试这个:

words.AddRange(rows);

答案 5 :(得分:0)

.Add将采用另一个字符串,而不是字符串数组。

请尝试.AddRange

答案 6 :(得分:0)

private static IEnumerable<string> LoadWords(String filePath)
{

    List<String> words = new List<String>();

    try
    {
        foreach (String line in File.ReadAllLines(filePath))
        {
            string[] rows = line.Split(',');

            foreach (String word in rows)
            {
                words.Add(word);
            }
        }

    }
    catch (Exception e)
    {
        System.Windows.MessageBox.Show(e.Message);
    }

        return words;
}

答案 7 :(得分:0)

你试图在数组列表中添加数组字符串

private static IEnumerable<string> LoadWords(String filePath)
    {

        List<String> words = new List<String>();

        try
        {
            foreach (String line in File.ReadAllLines(filePath))
            {
                string[] rows = line.Split(',');

                foreach(string str in rows)
                       words.Add(str);
            }

        }
        catch (Exception e)
        {
            System.Windows.MessageBox.Show(e.Message);
        }

            return words;
    }