无法将<string>类型转换为String []

时间:2017-08-06 16:11:57

标签: c# uwp windows-10-iot-core

我正在尝试为Windows IOT核心构建一个Twitter机器人 我想从名为tweets.csv的文件中获取推文 第一步是从文件中获取随机行。 这就是我试过的:

         private String TweetString(int Size = 140)
     {
         string[] lines = File.ReadLines(@"C:\Path\tweets.csv"); //Error here
         System.Text.StringBuilder builder = new System.Text.StringBuilder();
         var r = new Random();
         int randomLine = r.Next(0, lines.Length);
         string line = lines.Skip(randomLine - 1).Take(1).First();
         return builder.ToString();
     }

不幸的是我收到了这个错误:

  

无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'string []'。存在显式转换(您是否错过了演员?)

有谁知道如何解决这个问题?

(对不起,英语不是我的母语!)

4 个答案:

答案 0 :(得分:3)

使用LINQ:

确保你有

using System.Linq;

并使用.ToArray()

string[] lines = File.ReadLines(@"C:\Path\tweets.csv").ToArray(); 

答案 1 :(得分:3)

使用File.ReadAllLines()读取所有行并将其指定为string[]

答案 2 :(得分:2)

您必须将其转换为数组。

string[] test = File.ReadLines(@"C:\Path\tweets.csv").ToArray()

答案 3 :(得分:0)

鉴于您实际上并未将变量用作数组,您只需使用var关键字并将方法更新为....

Random random = new Random();
private String TweetString(int Size = 140) {
    var lines = File.ReadLines(@"C:\Path\tweets.csv"); //Note *var*
    var builder = new System.Text.StringBuilder();         
    int randomLine = random.Next(0, lines.Length);
    string line = lines.Skip(randomLine - 1).Take(1).First();
    builder.AppendLine(line);//Add the line to the builder.
    return builder.ToString();
}