无法创建静态类的实例' System.Tuple'

时间:2014-10-27 23:23:23

标签: c# tuples

我对这门语言很陌生。这段代码给了我错误:

  

无法创建静态类'System.Tuple'的实例

Operator '!=' cannot be applied to operands of type 'bool' and 'int'

我不知道我做错了什么。有些人可以告诉我出了什么问题

using(StreamReader rdr = new StreamReader("fileName"))
{
    StringBuilder sb = new StringBuilder();
    Int32 nc = 0;
    Char c;
    Int32 lineNumber = 0;
    while( (nc == rdr.Read() !=-1 ))
    {
        c = (Char)nc;
        if( Char.IsWhiteSpace(c) )
        {
            if( sb.Length > 0 )
            {
                yield return new Tuple( sb.ToString(), lineNumber );
                sb.Length = 0;
            }

            if( c == '\n' ) lineNumber++;
        } 
        else 
        {
            sb.Append( c );
        }
    }
    if( sb.Length > 0 ) yield return new Tuple( sb.ToString(), lineNumber );
}   

1 个答案:

答案 0 :(得分:10)

元组类需要您必须提供的类型参数:

yield return new Tuple<string, int>( sb.ToString(), lineNumber );

或者你可以使用Tuple.Create,它通常允许自动推断类型参数:

yield return Tuple.Create(sb.ToString(), lineNumber);