前提・実現したいこと
リストの指定した要素番号の要素が存在するかどうかの判定はどのようにすればよいですか?
Countでチェックしてから、出力する方法ならば実装できましたが(試したことに記述)、
Countでチェックするのはあまりスマートなやり方じゃない気がします。
できれば、直接要素番号を指定して、その要素が存在するか?みたいな判定が可能ならばしたいです。
該当のソースコード
ElementAtOrDefaultならばデフォルト値を出してくれますが、
.FullNameのようにアクセスするとエラーになってしまいます。
C#
1 List<DirectoryInfo> list = new List<DirectoryInfo>(); 2 Console.WriteLine(list.ElementAtOrDefault(0)); //エラーにならない。 3 Console.WriteLine(list.ElementAtOrDefault(1).FullName); //エラーになる。 4 Console.WriteLine(list.ElementAtOrDefault(2).FullName); //エラーになる。
これを下記のような要素存在判定して出力する形にしたいです。
C#
1 List<DirectoryInfo> list = new List<DirectoryInfo>(); 2 if(0番目の要素存在判定) Console.WriteLine(list.ElementAt(0).FullName); 3 if(1番目の要素存在判定) Console.WriteLine(list.ElementAt(1).FullName); 4 if(2番目の要素存在判定) Console.WriteLine(list.ElementAt(2).FullName);
試したこと
下記のようにCountでチェックしてから、出力する方法ならば実装できましたが、
Countでチェックするのはあまりスマートなやり方じゃない気がします。
できれば、直接要素番号を指定して、その要素が存在するか?みたいな判定が可能ならばしたいです。
C#
1 List<DirectoryInfo> list = new List<DirectoryInfo>(); 2 if(list.Count > 0) Console.WriteLine(list.ElementAt(0).FullName); 3 if(list.Count > 1) Console.WriteLine(list.ElementAt(1).FullName); 4 if(list.Count > 2) Console.WriteLine(list.ElementAt(2).FullName);
List<T>.Exists メソッド (Predicate<T>)というものを見つけましたが、書き方が分からなく、
そもそもこれで目的のことができるかどうかもわかりません。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/07/24 05:00