サンプルコードは以下の通りです。
namespace SampleListT
{
class Program
{
static void Main(string[] args)
{
//using System.Collections.Generic List
//using System in名前空間 .Collections; 名前空間の ArrayList
//どちらもリスト コレクションを実装しており、1 つはジェネリック コレクションで、もう 1 つは非ジェネリックです
// 次に、コレクションに person オブジェクトを追加します
person p1 = new person ( "aladdin " , 20 );
person p2 = new person("zhao", 10);
person p3 = new Person("jacky", 40);
//リストのコンテナサイズが指定されていない場合、デフォルトは 0 ですが、要素が追加されると自動的に 4 に拡張されます。5 番目の要素が追加されると 8 になり、9 番目の要素が追加されると 16 になります
//常に指数関数的に増加するため、メモリを再度開くと効率に影響を与えるため、要素の数が事前にわかっている場合は、できるだけ大きなトレードオフ値を指定するのが最善です。可能な限り
//要素を 3 つ追加し、コンテナのサイズを 4 に設定します。 注: 4 つの要素しか配置できないというわけではありません。これを超えると指数関数的に拡張されます。展開によって生じるオーバーヘッド
List
list.Add (p1);
list.Add(p2);
list.Add(p3);
//このメソッドは、余分な未使用のメモリ領域をクリアします。たとえば、割り当てサイズが 100 で、4 つだけを使用する場合、残りを残すのは無駄ではないでしょうか? //このメソッドが呼び出されたときに、要素の数がコンテナ サイズの 90% 以上を占める場合、リサイクルされません。
list.TrimExcess();
// これ以上のデモはありません
// 1 コレクターの初期化
// C# 3.0 以降、初期化関数が提供されていますが、IL では反映されません。
List
// 2 要素を追加する AddRange() このメソッドも ADD に変換されます。オブジェクトのバッチを一度に追加できます
List
//パラメータは更新する必要があるオブジェクト、または配列にすることもできます
list.AddRange( new Person[] { new Person( "aladdin" ,20) , new Person("zhao",6)});
List
// 3 要素を挿入します
// Insert() を使用しますこのメソッドを使用すると、指定した位置に要素を挿入できます
// たとえば、位置 1 に挿入します。その後、最終的にアラジン ジャッキー ジャオになりました。挿入とは、この位置を前と後の位置に配置したことを意味します。彼はすべて 1 つ前に移動されます
mylist.Insert( 1 , new person( "jacky" , 88 ));
{
Console.WriteLine(p.name);
}
// 4 つのアクセス要素
// ArrayList と List
Console.WriteLine( "--------------- 要素へのアクセス---------- ----------- --");
Console.WriteLine(mylist[i].name);
}
//foreach ドロップ ジェネレーターを使用することもできます。実装するには、これ以上の例はありません
//Foreach メソッドを使用します
//public delegate void Action
// Day 式を使用していくつかの場所を実装します
Console.WriteLine( "------出力するには ForEach メソッドを使用します--------------- ---------------- ");
// 5 要素の削除
//要素を削除するには、RemoveAt() を使用してインデクサー値を直接渡すことができます
// 最初の要素を直接削除します
mylist.RemoveAt(0);
//削除する要素を Remove メソッドに渡すこともできます
人per2 = 新しい人("zhao", 100);
人per3 = 新しい人("ジャッキー", 100);
lists2.Add(per2);
lists2.Add(per3);
foreach (person per in lists2)
{
Console.WriteLine(per.name);
}
//結果から、Jacky という名前の要素が削除されたことがわかります
// の削除プロセスについて話しましょうRemove メソッド
// IndexOf メソッドを使用してオブジェクトのインデックスを決定し、インデックスによって削除します
// IndexOf メソッドでは、まず要素が IEquatable インターフェイスを実装しているかどうかを確認し、実装されている場合は Equals メソッドを呼び出します。このインターフェース
// 実装されていない場合は、Object の Equals メソッドを呼び出して要素を比較 (つまり、アドレス比較) します
// 上記では per3 を削除しましたが、これは明らかにアドレスであるため、削除されました
//次に Person を変更して IEquatable
// オブジェクトを削除したい場合は、 Remove メソッドは一連のプロセスの後、最後にインデックスによって削除するため、インデックスを使用して直接削除するのが最善です!
//RemoveRange() は範囲を削除します
//最初のパラメータの開始位置
//lists2.RemoveRange(1, 2);
//Console .WriteLine( "一括削除後----------------");
//foreach (person per in lists2)
//{
// Console.WriteLine(per. name);
//}
// 6 検索
// IndexOf を使用して検索することができます。 LastIndexOf FindIndex FindLasIndex FindFindLas 要素が存在するかどうかを確認したいだけの場合は、Exists() メソッドを使用できます
// IndexOf( ) メソッドは、オブジェクトがヒットした場合、そのインデックスを返します。コレクション内の要素が見つからない場合は、-1 を返します。IndexOf は、IEquatable インターフェイスを使用して要素を比較することもできます
List
person1 = new person ("アラジン", 100);
人物 person2 = 新しい人物("zhao", 100);
人物 person3 = 新しい人物("ジャッキー", 100) ;
ls3.Add(person1);
ls3.Add( person2);
ls3.Add(person3);
// デフォルトのアドレス比較を使用するために、一時的に Person インターフェイス
int Index = ls3 を削除します。 IndexOf(person3);
Console.WriteLine( "index of per3 :" + Index); //2
// 検索範囲を 3 番目から指定することもでき、範囲の長さは 1
int Index2 = ls3.IndexOf(person3 ,2,1);
Console. WriteLine(index2);
//IEquatable 比較メソッドは以前に記述されているため、例は示しません
//FindIndex() メソッドは、特定の特性を持つ要素を検索するために使用されます
//例 パラメーターとしてデリゲートを使用する public delegate bool Predicate
intindex3 = ls3.FindIndex(param => param.name.Equals("jacky"));
Console.WriteLine(index3 );/ / 2
// FindLastIndexここには重複する要素がないため、1 つだけを見つけて停止する効果は反映されません。 ("aladdin"));
Console.WriteLine(index4);
//Find メソッドは、要素自体を返す点を除いて、FindIndex メソッドと同じように使用されます
person ppp = ls3.Find( p => p .name.Equals("jacky")) ;
Console.WriteLine(ppp);
//年齢が 100 に等しいすべてのオブジェクト、およびそのうちの 3 つが
List
{
Console.WriteLine(p.name);
}
// 7 Sort
/ / リストは Sort メソッドを使用して並べ替えることができます。実装アルゴリズムはクイック ソートです
// このメソッドにはいくつかのオーバーロードがあります
// このメソッドは、要素に IComparable が実装されている場合にのみ使用できます。実装されている場合は、sort を 1 回直接呼び出すと、順序がソートされます
// public void Sort(Comparison
//public void Sort(IComparer
//public void Sort(int index, int) count, IComparer
人 person6 = 新しい人 ("ジャッキー", 44);
ls4.Add(person4);
ls4.Add(person6) ;
ls4.Sort(MyComparFunc);
foreach ( ls4 の person p)
Console.WriteLine(p.name+ p.age );
}
Console.WriteLine( "----------順序を逆にします---------- --- ----");
foreach(ls4の人p)
Console.WriteLine(p.name+p.age);
}
// 8 タイプ変換
//コレクション内の要素を任意のタイプの要素に変換できます。たとえば、コレクション内の person を Racer オブジェクトに変換したいとします。Racer には名前のみが含まれ、年齢は含まれません。 // public List
// public デリゲート TOutput Converter
Console.WriteLine( "----------変換されたもの--------");
{
Console.WriteLine(r.name);
}
// コレクションが作成された後は、読み取りおよび書き込み可能でなければなりません。新しい要素は追加されましたが、入力が完了したと思われる場合は、何も変更しないでください。
// 読み取り専用コレクションを使用し、AsReadOnly メソッド () を使用して ReadOnlyCollection
ReadOnlyCollection
{
Console.WriteLine(r.name);}
Console.ReadLine();
public static int MyComparFunc(Person p1, Person p2)
{if (p1.age == p2.age)
{
return 0;
}
else if ( p1.age>
}
}
}
C# ジェネリック リスト List

C#.NETエコシステムは、開発者がアプリケーションを効率的に構築できるようにするための豊富なフレームワークとライブラリを提供します。 1.ASP.NETCOREは、高性能Webアプリケーションの構築に使用されます。2.EntityFrameWorkCoreは、データベース操作に使用されます。これらのツールの使用とベストプラクティスを理解することにより、開発者はアプリケーションの品質とパフォーマンスを向上させることができます。

c#.netアプリをAzureまたはAWSに展開する方法は?答えは、AzureAppServiceとAwselasticBeanStalkを使用することです。 1。Azureでは、AzureAppServiceとAzurePipelinesを使用して展開を自動化します。 2。AWSでは、Amazon ElasticBeanstalkとAwslambdaを使用して、展開とサーバーレス計算を実装します。

C#と.NETの組み合わせにより、開発者に強力なプログラミング環境を提供します。 1)C#は、多型と非同期プログラミングをサポートします。2).NETは、クロスプラットフォーム機能と同時処理メカニズムを提供し、デスクトップ、Web、モバイルアプリケーション開発で広く使用されています。

.NetFrameworkはソフトウェアフレームワークであり、C#はプログラミング言語です。 1..netframeworkは、デスクトップ、Web、モバイルアプリケーションの開発をサポートするライブラリとサービスを提供します。 2.C#は.NetFrameWork用に設計されており、最新のプログラミング機能をサポートしています。 3..NetFrameworkはCLRを介してコード実行を管理し、C#コードはILにコンパイルされ、CLRによって実行されます。 4. .NetFrameWorkを使用してアプリケーションをすばやく開発し、C#はLINQなどの高度な関数を提供します。 5.一般的なエラーには、タイプ変換と非同期プログラミングデッドロックが含まれます。 VisualStudioツールは、デバッグに必要です。

C#は、Microsoftが開発した最新のオブジェクト指向プログラミング言語であり、.NETはMicrosoftが提供する開発フレームワークです。 C#は、CのパフォーマンスとJavaのシンプルさを組み合わせており、さまざまなアプリケーションの構築に適しています。 .NETフレームワークは、複数の言語をサポートし、ガベージコレクションメカニズムを提供し、メモリ管理を簡素化します。

C#と.NETランタイムは密接に連携して、開発者に効率的で強力なプラットフォームの開発機能に力を与えます。 1)C#は、.NETフレームワークとシームレスに統合するように設計されたタイプセーフおよびオブジェクト指向のプログラミング言語です。 2).NETランタイムは、C#コードの実行を管理し、ガベージコレクション、タイプの安全性、その他のサービスを提供し、効率的でクロスプラットフォームの操作を保証します。

C#.NET開発を開始するには、次のことが必要です。1。C#の基本的な知識と.NETフレームワークのコア概念を理解する。 2。変数、データ型、制御構造、関数、クラスの基本概念をマスターします。 3。LINQや非同期プログラミングなど、C#の高度な機能を学習します。 4.一般的なエラーのためのデバッグテクニックとパフォーマンス最適化方法に精通してください。これらの手順を使用すると、C#.NETの世界に徐々に浸透し、効率的なアプリケーションを書き込むことができます。

C#と.NETの関係は切り離せませんが、同じものではありません。 C#はプログラミング言語であり、.NETは開発プラットフォームです。 C#は、コードの書き込み、.NETの中間言語(IL)にコンパイルされ、.NET Runtime(CLR)によって実行されるために使用されます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

Dreamweaver Mac版
ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ホットトピック









