var ternary operator
このチュートリアルでは、構文、使用法、プログラミング例を使用して、C#のVar、LINQ、およびTernaryOperatorについて説明します。
C#は強く型付けされた言語です。つまり、プログラム内のどこでも使用する前に、変数を宣言する必要があります。ただし、プログラムの次のステップで必要になる変数タイプがわからないシナリオを想定してみましょう。
これらのタイプのシナリオを処理するために、C#では、ユーザーが明示的なデータ型を提供せずに変数を宣言できます。これは、「var」型変数を宣言することで実現できます。
学習内容:
C#を持っている
「var」キーワードの特徴
varキーワードは、varのサポートを受けて変数を初期化します。 var変数のデータ型は、変数にデータを割り当てる際の実行時に定義されます。 C#は、データ型をvar変数に自動的にキャストします。データ型が変数に割り当てられると、それを変更することはできません。
例
「var」キーワードを使用して、任意のデータ型を格納するために使用できるvar型変数を宣言できます。さまざまなデータ型に対するvar型変数の使用法のいくつかを見てみましょう。
public static void Main(string() args) { var integerData = 100; var booleanData = true; var stringData = 'Var Keyword'; Console.WriteLine('Printing different var variables:
{0}
{1}
{2}', integerData, booleanData, stringData); Console.Read(); } 出力
さまざまな変数変数の出力:
100
本当
キーワードになる
説明
ここでは、integerData、booleanData、stringDataの3つの異なる変数を「var」データ型で定義しました。次に、これらの各変数にさまざまなデータ型の値を割り当てました。これをコンソールに出力すると、割り当てられたすべての値の出力が得られます。
varを使用してArrayListからデータにアクセスする
アクセスしたいArrayListがあるとしましょう。配列リストのデータ型がわからない場合は、var変数を使用すると非常に便利です。配列リストが複数のデータ型で構成されている場合にも役立ちます。
例
配列javaを逆にする方法
public static void Main(string() args) { ArrayList ar = new ArrayList(); ar.Add(1); ar.Add(2); ar.Add(3); ar.Add(4); foreach (var a in ar) { Console.WriteLine(a); } Console.Read(); } 出力
1
二
3
4
説明
4つの値1、2、3、および4を使用してArrayListを作成しました。すでに述べたように、配列リストに存在するデータ型がわからない場合は、foreachループで「var」を使用して任意のデータにアクセスできます。含まれる可能性のあるタイプ。
したがって、各変数には、値の割り当て時にデータ型が割り当てられます。これは、配列に複数のデータ型の値が含まれている場合にも役立ちます。
varの使用に関する制限
他のデータ型やキーワードと同様に、varにもかなりの制限があります。 varキーワードのいくつかの制約を見てみましょう。
- Varは、変数の実際のデータ型をわかりにくくします。イニシャライザが何らかの理由で明確に定義されたデータ型を割り当てない場合、変数の実際のデータ型を判別することは困難になります。
- キーワード「var」は単純で、プログラマーはどこでも使用することになり、アプリケーション内の他の変数と区別するのが困難になります。 例えば、 var型変数がある場合。文字列なのか、整数なのか、それとも辞書なのかわかりません。
C#varキーワードの概要
以下にリストされているのは、varキーワードについて、それを使用する際に私たち全員が覚えておく必要のある最も重要な事実のいくつかです。
無料でアニメを見るのに最適なサイト
- Varは、明示的なデータ型を指定しなくても、変数をローカルで定義するのに非常に役立ちます。 var変数のデータ型は、任意の値が割り当てられているときに決定されます。データ型が割り当てられると、それを変更することはできません。
- すべてのvar変数は、同じコード行で宣言および初期化する必要があります。 C#では、暗黙のローカル変数にnull値を割り当てることはできません。
C#三項演算子
Cシャープの三項演算子は意思決定演算子であり、Cシャーププログラミング言語のif-elseステートメントに置き換わります。この演算子を使用すると、複数のif-elseステートメントを単純なコード行に置き換えることができます。
三項演算子は、意思決定演算子の構文「?:」を使用して、プログラマーが事前定義された条件に基づいてステートメントを実行するのに役立ちます。
三項演算子の構文
C#プログラミング言語では、三項演算子には3種類のオペランドが含まれています
Condition_expression? First_expression:Second_expression;
上記の構文に見られるように、三項演算子は3つの部分で構成されています。最初の部分には、ブール値(TrueまたはFalse)を返す条件式が含まれています。
2番目の部分には、式がtrueと評価された場合にプログラマーが返したいステートメントが含まれています。最後と最後の部分には、式がfalseと評価された場合に返されるステートメントが含まれています。
覚えておくべきポイントは、三項演算子は、式を実行しない2番目と3番目の部分に含まれる値のみを返すということです。
次の例を見て、条件演算子がどのように機能するかを見てみましょう。
プログラム
public static void Main(string() args) { int a = 1; int b = 3; var compare = a > b ? 'a is greater than b ' : 'b is greater than a'; Console.WriteLine('The comparison result : {0}', compare); } 出力
比較結果:bはaより大きい
コードの説明
ここでは、比較に使用した2つの異なる整数があります。 varcompareを使用して結果を保存します。次に、三項演算子を使用して両方の整数を比較します。したがって、式がtrueを返す場合、結果として最初のステートメントが返され、式がfalseの場合、2番目のステートメントが返されます。
ネストされた三項演算子
C#を使用すると、プログラマーは複数の条件式を組み合わせて、ネストされた3項演算子を作成することもできます。ネストされた三項演算子は、複数のif-else ifステートメントを置き換えて、それらを1行のコードに単純化するのに役立ちます。
標準のネストされた三項の例をより明確に見てみましょう。 例えば、 大きなif-else-ifステートメントブロックを使用する代わりに、三項演算子の1行のコードを使用する方法について説明します。
プログラム
public static void Main(string() args) { int a = 3; int b = 3; var compare = a > b ? 'a is greater than b' : a 出力
比較結果:aはbに等しい
説明
上記の例を見ると、複数のif-elseステートメントを記述する代わりに、複数のステートメントがその上に記述されているのと同じ結果をもたらす単一のネストされた三項演算子を記述していることがわかります。
ネストされた三項演算子は、三項演算子構文の2番目のステートメントを別の三項演算子に置き換えることによって記述されます。これを数回実行して、指定された条件をいくつでもネストできます。これは、if elseif条件を置き換えるためにも使用できます。
三項演算子の概要
- 三項演算子の式について学びました。
- また、三項演算子は常に値を返し、実行されないことも学びます。
自由三項演算子を使用して、if-elseまたはif-else-ifステートメントを置き換えることができます。単純に三項演算子を使用することも、ネストされた三項演算子を使用することもできます。
C#LINQ
統合言語クエリまたはLINQは、.net Framework3.5で導入されました。これは、データベースやコレクションなど、さまざまなデータコレクターからのデータのクエリに役立ちます。ユーザーの要件に基づいています。
C SharpとVBの両方と統合されているため、異なるプログラミング言語とデータベース間の競合を同時に取り除くことができ、異なるデータソースに対して単一の言語クエリを提供できます。
例えば、 LINQを使用して、SQLクエリと同様にデータベースから未保存のデータを取得できます。プログラマーがSQLServer、XMLドキュメント、コレクションなどのさまざまなデータソースからデータにアクセスして保存するのを支援できます。
LINQ構文
LINQを使用して操作を実行する前に、system.Linq名前空間をアプリケーションにインポートする必要があります。
LINQ操作は次の2つの方法で実行できます。
- LINQクエリ構文
- LINQメソッドの構文
LINQクエリ構文
LINQを使用すると、クエリ構文を使用してさまざまなクエリ操作を実行できます。これはSQLとはかなり異なり、以下に示すような構文階層に従う必要があります。
Windows10で.epsファイルを開く方法
文の階層は次の順序で与えられます。
From、in、let、where、order by、select、group by、into
これらは、LINQクエリ構文を記述しているときに維持する必要がある順序階層です。 LINQクエリ構文の一般的な構文を見てみましょう。
構文
from variable_name in collection_name クエリ構文の使用法をより明確に理解するために、例を見てみましょう。
プログラム
public static void Main(string() args) { int() ar = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; var query = from num in ar where num <3 select num; foreach (var v in query) { Console.WriteLine(v); } } 出力
1
二
説明
この例では、いくつかのテストデータを使用して整数型配列を定義しました。次に、var型変数を使用してLINQクエリの結果を格納しました。その後、foreachループを使用して、結果のすべてのコンテンツを出力しました。
上記の例は、プログラムでLINQクエリ構文を使用する方法を示しています。
LINQメソッドの構文
メソッド構文は、Enumerableクラスの拡張メソッドを使用します。メソッド構文はクエリ構文とはかなり異なります。
以下に、メソッド構文がどのように機能するかを確認する例を示します。
プログラム
public static void Main(string() args) { int() ar = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; IEnumerable query = ar.Where(n => n > 9).ToList(); foreach (var v in query) { Console.WriteLine(v); } } 出力
10
十一
12
説明
ここに、いくつかの整数データを持つ整数型配列があります。次に、整数配列に対してメソッドクエリを実行しました。 foreachループを使用して、クエリの結果からデータを取得しました。これにより、メソッド構文で指定した条件に基づいた結果が得られます。
結論
LINQは、.Netフレームワークに導入された統合クエリ言語であることがわかりました。
XMLドキュメントコレクションSQLデータベースなどのさまざまなデータソースをクエリするソリューションを提供します。CSharpとVB.netの両方で使用できます。
推奨読書