JavaScriptの配列をC#の配列に変換する方法をわかりやすく解説
フロントエンド(JavaScript)とバックエンド(C#)の間でデータを受け渡す際、JavaScriptの配列をそのままC#で扱うことはできません。そこで、配列を一度文字列に変換し、C#側で分割(Split)して配列として復元するという手法がよく使われます。この記事では、その具体的な手順をサンプルコード付きで解説します。
手順1:JavaScriptで配列を作成する
まず、変換元となるJavaScriptの配列を用意します。
<script>
var myArr = new Array(5);
myArr[0] = "Welcome";
myArr[1] = "to";
myArr[2] = "the";
myArr[3] = "Web";
myArr[4] = "World";
</script>
この例では5つの文字列要素を持つ配列「myArr」を作成しています。
手順2:join()メソッドで配列を文字列に変換する
次に、join()メソッドを使って配列の各要素をカンマ区切りの1つの文字列にまとめます。
document.getElementById('demo1').value = myArr.join(',');
この処理により、配列は以下のような文字列に変換されます。
Welcome,to,the,Web,World
この文字列を、隠しフィールド(hidden input)やAjaxリクエストなどを通じてサーバー側へ送信します。
手順3:C#側でSplit()を使って配列に復元する
サーバー側(C#)では、受け取った文字列をSplit()メソッドでカンマを区切り文字として分割し、文字列配列に変換します。
string[] str = demo.Split(",".ToCharArray());
ここでdemoは、クライアントから送られてきたカンマ区切りの文字列です。Split()を実行すると、各要素が分割されたC#の文字列配列が得られます。
補足:より安全な書き方
C#では、区切り文字を文字列として直接指定できるオーバーロードもあります。
string[] str = demo.Split(',');
また、空の要素を除外したい場合は以下のように記述できます。
string[] str = demo.Split(',', StringSplitOptions.RemoveEmptyEntries);
まとめ
JavaScriptの配列をC#の配列に変換する基本的な流れは以下の通りです。
- JavaScript側:
join(',')で配列をカンマ区切りの文字列に変換する - データ送信: 文字列をサーバーへ送る(hiddenフィールドやAjaxなど)
- C#側:
Split()で文字列を分割し、配列として復元する
この方法はシンプルながら実用的で、フォーム送信やAjax通信など、さまざまな場面で活用できます。要素内にカンマが含まれる可能性がある場合は、別の区切り文字(例:|)を使用するか、JSON形式での受け渡しを検討するとよいでしょう。
-
JavaScriptで配列をセット(Set)に変換する方法|new Set()の使い方を解説
JavaScriptでは、new Set() コンストラクタを使うことで、配列を簡単にセット(Setオブジェクト)へ変換できます。セットは同じ値を自動的に1つだけ保持する性質を持つため、配列から重複した要素を取り除きたい場合にも非常に便利です。 配列をセットに変換するサンプルコード 以下は、ボタンをクリックすると配列がセットに変換されて表示される、完全なHTMLサンプルです。 <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co
-
【C#入門】2次元配列を1次元配列に変換する方法をわかりやすく解説
C#で2次元配列を1次元配列に変換するには?プログラミングでは、2次元配列のデータを1次元配列として扱いたい場面がよくあります。C#では、ネストしたforループとカウンタ変数を組み合わせることで、2次元配列の全要素を1次元配列へ簡単にコピーできます。本記事では、その具体的な手順とサンプルコードを解説します。手順1:2次元配列と1次元配列を宣言するまず、変換元となる2次元配列と、変換先となる1次元配列を用意します。int[] a = new int[2, 2] {{1,2}, {3,4}}; int[] b = new int[4];ここでのポイントは、1次元配列のサイズを「行数 × 列数」で指