C#提示:无法将"System.String[]"隐式转换为string类型

我用File.ReadAllLines(@"text.txt");读取字符,但是取出的都是System.String[],提示:无法将"System.String[]"隐... 我用File.ReadAllLines(@"text.txt");读取字符,但是取出的都是System.String[],提示:无法将"System.String[]"隐式转换为string类型。我试着用File.ReadAllText(@"text.txt");结果读取的就是我所需要的text文本文件里的内容。我想知道为什么ReadAllLines方法会出现这种隐式转换问题而ReadAllText没有,这该怎么解决?我希望用ReadAllLines方法取出我text文本中所要行的数据! 展开
 我来答
就烦条0o
推荐于2016-11-23 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部

这是说你直接把System.String[]当成string类型使用,System.String[]是数组类型,想要使用数组中的值,可以按如下代码做:

string[] lines = File.ReadAllLines(@"text.txt");
string txt = "";
foreach (string line in lines)
{
    txt += line;
}

txt就是组数中所有字符串的组合。

One_More_2013
2015-12-02 · TA获得超过682个赞
知道小有建树答主
回答量:1028
采纳率:50%
帮助的人:290万
展开全部
无法隐式转换,那是强制转换。VS新版本的出来,过去一些隐式能转换的会变成只能强制转换的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
纯黑色xx
2011-12-05
知道答主
回答量:32
采纳率:0%
帮助的人:27万
展开全部
ReadAllLines方法返回字符串数组(String[]),当然不能隐式转换为字符串(string)。
ReadAllText方法返回字符串(string),所以能够赋给字符串遍量。

希望用ReadAllLines方法取出你text文本中所要行的数据,只需要
string[] lines=File.ReadAllLines(@"text.txt");
然后可遍历输出。希望采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
latentguling
2011-12-05 · TA获得超过326个赞
知道小有建树答主
回答量:636
采纳率:0%
帮助的人:529万
展开全部
没有必要一行一行处理的情况下,你直接用ReadAllText,因为它内部就是一行一行的拼起来的。
你如果需要处理一行一行的,说明你对c#的返回类型还不是很了解。
既然是一行一行的,说明是多行,每一行都是string,所以是一个数组,即string[]
所以你定义变量的时候,应该就是数组
string[] lines= File.ReadAllLine(....);//
foreach(string line in lines){
//line 就是一行
}
for(int i=0;i<lines.Length;i++){
//lines[i] 就是其中一行
}

具体看你要做什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_神__仙_
推荐于2018-02-27 · TA获得超过1257个赞
知道小有建树答主
回答量:806
采纳率:0%
帮助的人:529万
展开全部
string[] sa = File.ReadAllLines(@"text.txt");
string all = “”;
foreach(string str in sa)
{
all += str+"\r\n";
}
追问
为什么会出现这个问题呢?再就是你用这个方法在我的代码上行不通,代码量太大了,变的会很复杂!开始我还用过那种读取写入的流,后来用Using类,再现在用的这种方法,这种方法就一条语句就能搞定,而且省了我其余的很多代码!
追答
public static string StringsToString(string[] sa)
{
StringBuilder sb = new StringBuilder();
foreach(string str in sa)
{
sb.Append(str).Append("\r\n");
}
return sb.ToString();
}
这个方法放在一个通用类里,比如类名为CommonHelper
调用时: string all = CommonHelper.StringsToString(File.ReadAllLines(@"text.txt"));
至于为什么会出现这个问题,是因为一个是string数组,一个是string,两个对象不同
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式