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);
}