在c#中将字符串更改为var数据类型

时间:2011-01-28 18:23:49

标签: c#

我正在从这样的文件中读取数据

using (StreamReader r = new StreamReader("newfile.txt"))
{

            string lines1;
            lines1 = r.ReadLine();
            var lines = lines1;

            foreach (string line in lines)
            {
                var dictionary = new Dictionary<String, Int32>();
                var records = line.Split(',');

如何将字符串数据类型转换为var数据类型?

如果我使用这一行

   var lines = lines1;

然后错误发生在

 var records = line.Split(',');

2 个答案:

答案 0 :(得分:6)

没有var数据类型。在C#中,“var”只意味着“让编译器根据上下文为我找出数据类型”。在这种情况下,使用:

var lines = lines1;

或:

string lines = lines1;

将生成完全相同的代码。该错误消息与var而非string的使用无关。

问题在于:

lines1 = r.ReadLine();
var lines = lines1;

// ...
foreach (string line in lines)

您正在阅读单行作为单字符串,然后尝试执行:“在单个字符串中使用foreach字符串”。我怀疑你想要更像的东西:

using (StreamReader r = new StreamReader("newfile.txt"))
{
    while (r.Peek() >= 0)
    {
        string line = r.ReadLine();
        var dictionary = new Dictionary<String, Int32>();
        var records = line.Split(',');
        // use records....  Note that above is the same as:
        // string[] records = line.Split(',');
    }
}

答案 1 :(得分:1)

“split”函数返回一个数组。