无法将类型 <string> 隐式转换为 String[]
Cannot implicity convert type <string> to String[]
我正在尝试为 Windows IOT Core 构建一个 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();
}
不幸的是我得到了这个错误:
Cannot implicitly convert type 'System.Collections.Generic.IEnumerable' to 'string[]'. An explicit conversion exists (are you missing a cast?)
有人知道如何解决这个问题吗?
(抱歉,英语不是我的母语!)
使用 LINQ:
确保你有
using System.Linq;
并使用 .ToArray()
.
string[] lines = File.ReadLines(@"C:\Path\tweets.csv").ToArray();
您必须将其转换为数组。
string[] test = File.ReadLines(@"C:\Path\tweets.csv").ToArray()
使用File.ReadAllLines()
读取所有行并将其分配为string[]
鉴于您实际上并未将变量用作数组,您可以简单地使用 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();
}
我正在尝试为 Windows IOT Core 构建一个 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();
}
不幸的是我得到了这个错误:
Cannot implicitly convert type 'System.Collections.Generic.IEnumerable' to 'string[]'. An explicit conversion exists (are you missing a cast?)
有人知道如何解决这个问题吗?
(抱歉,英语不是我的母语!)
使用 LINQ:
确保你有
using System.Linq;
并使用 .ToArray()
.
string[] lines = File.ReadLines(@"C:\Path\tweets.csv").ToArray();
您必须将其转换为数组。
string[] test = File.ReadLines(@"C:\Path\tweets.csv").ToArray()
使用File.ReadAllLines()
读取所有行并将其分配为string[]
鉴于您实际上并未将变量用作数组,您可以简单地使用 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();
}