回答編集履歴

2

IComparable実装パターンを追記

2018/07/23 09:21

投稿

YamakawaJunichi
YamakawaJunichi

スコア632

test CHANGED
@@ -13,3 +13,71 @@
13
13
 
14
14
 
15
15
  ```
16
+
17
+
18
+
19
+ 追記
20
+
21
+ 無理矢理FileInfoにIComparableを実装するならこんな感じでしょうか。
22
+
23
+ 自作クラスなら自然な形で実装できるのですが・・・
24
+
25
+
26
+
27
+ 余談ですが、FileInfoに拡張メソッドでCompareToを定義してみましたがやはりダメでした。
28
+
29
+
30
+
31
+ ```C#
32
+
33
+
34
+
35
+ filelist.Select(p => new FileInfoWrapper(p)).Max().FileInfo;
36
+
37
+
38
+
39
+ class FileInfoWrapper : IComparable<FileInfoWrapper>
40
+
41
+ {
42
+
43
+ public FileInfo FileInfo { get; }
44
+
45
+ public FileInfoWrapper(FileInfo fileInfo) => FileInfo = fileInfo;
46
+
47
+
48
+
49
+ public int CompareTo(FileInfoWrapper other)
50
+
51
+ {
52
+
53
+ if (FileInfo.Length == other.FileInfo.Length)
54
+
55
+ {
56
+
57
+ return 0;
58
+
59
+ }
60
+
61
+ else if (FileInfo.Length > other.FileInfo.Length)
62
+
63
+ {
64
+
65
+ return 1;
66
+
67
+ }
68
+
69
+ else
70
+
71
+ {
72
+
73
+ return -1;
74
+
75
+ }
76
+
77
+ }
78
+
79
+ }
80
+
81
+
82
+
83
+ ```

1

変数の誤りを修正

2018/07/23 09:21

投稿

YamakawaJunichi
YamakawaJunichi

スコア632

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- filelist.Aggregate((result, next) => result.ID > next.ID ? result : next);
11
+ filelist.Aggregate((result, next) => result.Length > next.Length ? result : next);
12
12
 
13
13
 
14
14