タグ付けされた質問 「generics」

ジェネリックスは、.NET言語、Java、Swift、Rustなどのさまざまな言語に見られるパラメトリックポリモーフィズムの形式です。


18
List <T>またはIList <T> [終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 7か月前に閉鎖。 C#でリストよりもIListを使用する理由を誰かに説明してもらえますか? 関連質問:なぜ公開するのが悪いと考えられているのですかList&lt;T&gt;
495 c#  list  generics 


26
繰り返しながらジェネリックリストから要素を削除する方法
それぞれ処理する必要がある要素のリストを操作するためのより良いパターンを探しています。結果に応じて、リストから削除されます。 あなたは使用することはできません.Remove(element)内部でforeach (var element in X)(それは、その結果のでCollection was modified; enumeration operation may not execute.例外)...あなたはまた、使用することはできませんfor (int i = 0; i &lt; elements.Count(); i++)し、.RemoveAt(i)それがコレクションに相対あなたの現在の位置を崩壊させるためi。 これを行うエレガントな方法はありますか?
451 c#  list  loops  generics  key-value 

7
Java 7のひし形演算子(<>)のポイントは何ですか?
Java 7のdiamond演算子では、次のようなコードを使用できます。 List&lt;String&gt; list = new LinkedList&lt;&gt;(); ただし、Java 5/6では、次のように簡単に記述できます。 List&lt;String&gt; list = new LinkedList(); 型消去についての私の理解は、これらはまったく同じであるということです。(とにかくジェネリックは実行時に削除されます)。 なぜダイヤモンドを気にするのですか?どのような新しい機能/タイプセーフが許可されますか?新しい機能が得られない場合、なぜそれを機能と呼ぶのですか?この概念に対する私の理解に欠陥はありますか?


9
List <T> OrderByアルファベット順
Framework 3.5でC#を使用しています。Genericをすばやく並べ替えたいList&lt;T&gt;。この例のためにPerson、lastnameのプロパティを持つタイプのリストがあるとします。ラムダ式を使用してこのリストをどのようにソートしますか? List&lt;Person&gt; people = PopulateList(); people.OrderBy(???? =&gt; ?????)
442 c#  generics  list  lambda  sorting 

13
Google Gson-list <class>オブジェクトをデシリアライズしますか?(ジェネリックタイプ)
Google Gsonを介してリストオブジェクトを転送したいのですが、ジェネリック型を逆シリアル化する方法がわかりません。 私は見ての後にしようとした何本(BalusCの答え): MyClass mc = new Gson().fromJson(result, new List&lt;MyClass&gt;(){}.getClass()); しかし、Eclipseで「type new List(){}は継承された抽象メソッドを実装する必要があります...」というエラーが発生し、クイックフィックスを使用すると、20を超えるメソッドスタブのモンスターが発生します。 私はもっ​​と簡単な解決策があると確信していますが、それを見つけることができないようです! 編集: 今私が持っています Type listType = new TypeToken&lt;List&lt;MyClass&gt;&gt;() { }.getType(); MyClass mc = new Gson().fromJson(result, listType); ただし、「fromJson」行で次の例外が発生します。 java.lang.NullPointerException at org.apache.harmony.luni.lang.reflect.ListOfTypes.length(ListOfTypes.java:47) at org.apache.harmony.luni.lang.reflect.ImplForType.toString(ImplForType.java:83) at java.lang.StringBuilder.append(StringBuilder.java:203) at com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:56) at com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:88) at com.google.gson.JsonDeserializationVisitor.visitUsingCustomHandler(JsonDeserializationVisitor.java:76) at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:106) at com.google.gson.JsonDeserializationContextDefault.fromJsonArray(JsonDeserializationContextDefault.java:64) at com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:49) at …
441 java  json  generics  gson 

5
varargsパラメーターによるヒープ汚染の可能性
これは、Java 7でジェネリック型のvarargsを使用するときに発生することを理解しています。 しかし、私の質問です。 「使用するとヒープが汚染される可能性がある」とEclipseが正確に意味するのは何ですか? そして 新しい@SafeVarargsアノテーションはどのようにこれを防ぎますか?

22
匿名クラスの総称リスト
C#3.0では、次の構文で匿名クラスを作成できます var o = new { Id = 1, Name = "Foo" }; これらの匿名クラスをジェネリックリストに追加する方法はありますか? 例: var o = new { Id = 1, Name = "Foo" }; var o1 = new { Id = 2, Name = "Bar" }; List&lt;var&gt; list = new List&lt;var&gt;(); list.Add(o); list.Add(o1); もう一つの例: List&lt;var&gt; list = …


14
テンプレート型のC#ジェネリックnew()に引数を渡す
リストに追加するときに、コンストラクターを介してT型の新しいオブジェクトを作成しようとしています。 コンパイルエラーが発生する:エラーメッセージは次のとおりです。 'T':変数のインスタンスを作成するときに引数を提供できません しかし、私のクラスにはコンストラクター引数があります!どうすればこれを機能させることができますか? public static string GetAllItems&lt;T&gt;(...) where T : new() { ... List&lt;T&gt; tabListItems = new List&lt;T&gt;(); foreach (ListItem listItem in listCollection) { tabListItems.Add(new T(listItem)); // error here. } ... }



7
メソッドはタイプの別のメソッドと同じ消去を持っています
同じクラスに次の2つのメソッドを含めることが合法ではないのはなぜですか? class Test{ void add(Set&lt;Integer&gt; ii){} void add(Set&lt;String&gt; ss){} } 私は得る compilation error メソッドadd(Set)には、タイプTestの別のメソッドと同じ消去add(Set)があります。 私はそれを回避することができますが、なぜjavacがこれを好まないのかと思っていました。 多くの場合、これらの2つの方法のロジックは非常によく似ており、1つの方法で置き換えることができます。 public void add(Set&lt;?&gt; set){} メソッドですが、常にそうであるとは限りません。 constructorsこれらの引数を取る2つが必要な場合は、1つのの名前を変更することはできないため、これは非常に面倒ですconstructors。
381 java  generics 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.