Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在匿名类型和IComparable接口的文件夹中查找最大的文件_C# - Fatal编程技术网

C# 在匿名类型和IComparable接口的文件夹中查找最大的文件

C# 在匿名类型和IComparable接口的文件夹中查找最大的文件,c#,C#,在执行时,代码出现错误,我不知道在何处必须进行更改以实现接口。 下面是我在控制台应用程序中尝试的完整代码 Error 1 'ConsoleApplication16.Temp' does not implement interface member 'System.IComparable<ConsoleApplication16.Temp>.CompareTo(ConsoleApplication16.Temp)' D:\nnn\ConsoleApplication16

在执行时,代码出现错误,我不知道在何处必须进行更改以实现接口。 下面是我在控制台应用程序中尝试的完整代码

  Error 1   'ConsoleApplication16.Temp' does not implement interface member 'System.IComparable<ConsoleApplication16.Temp>.CompareTo(ConsoleApplication16.Temp)'    D:\nnn\ConsoleApplication16\ConsoleApplication16\Program.cs 32  18  ConsoleApplication16
下面是我的代码

class Program
{
    static void Main()

    {
    string []files=Directory.GetFiles("C:\\WINDOWS","*.*",SearchOption.AllDirectories);
    Console.WriteLine(files.Count());
   //Get Maximum
   var max = (from fileName in files
                  let info = new FileInfo(fileName)
                  orderby info.Length descending
                  select new { FileName = info.Name, Size = info.Length })
                  .Take(1);
        Console.WriteLine("Using Take : {0}",max.ElementAt(0));
        //With anonymous Type we have to indicate what to get the max of
        var max2 = (from fileName in files
                    let info = new FileInfo(fileName)
                    select
                    new Temp{ FileName = info.Name, Size = info.Length })
                    .Max(s => s.Size);
        Console.WriteLine("Using Max:{0}", max2);
        Console.ReadLine();
    }
}
public class Temp : IComparable<Temp> //error is here
{
    public string FileName { set; get; }
    public long Size { set; get; }

    public int compareTo(Temp o)
    {
        return Size.CompareTo(o.Size);
    }
    public override string ToString()
    {
        return string.Format("FileName:{0},Size:{1}", FileName, Size);
    }
}

C区分大小写,它是CompareTo而不是CompareTo


但是,我不知道这个编译器错误与代码的其余部分有什么关系,因为CompareTo从未在LINQ查询中使用过

你应该在句点后大写第一个单词的第一个字母。所以在下面发布的问题中。。。应该在……以下。。。。同样,compareTo也应该是compareTo。关键是这个案子很重要。
public int CompareTo(Temp o)
{
    return Size.CompareTo(o.Size);
}