C#
 Computer >> コンピューター >  >> プログラミング >> C#

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形式での受け渡しを検討するとよいでしょう。

  1. JavaScriptで配列をセット(Set)に変換する方法|new Set()の使い方を解説

    JavaScriptでは、new Set() コンストラクタを使うことで、配列を簡単にセット(Setオブジェクト)へ変換できます。セットは同じ値を自動的に1つだけ保持する性質を持つため、配列から重複した要素を取り除きたい場合にも非常に便利です。 配列をセットに変換するサンプルコード 以下は、ボタンをクリックすると配列がセットに変換されて表示される、完全なHTMLサンプルです。 <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co

  2. 【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次元配列のサイズを「行数 × 列数」で指