我正在尝试为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 []'。存在显式转换(您是否错过了演员?)
有谁知道如何解决这个问题?
(对不起,英语不是我的母语!)
答案 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();
}