質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

1450閲覧

List.SortでListのソートに関する質問。

sinzanmon15

総合スコア14

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2018/08/24 04:14

前提・実現したいこと

初歩的な事を聞いて申し訳ないですがご教示いただけるとありがたいです。

pc:Windows 7
開発環境:Visual Studio2008

webのサンプルコードに関して質問なのですが、
Listで並び替えを

以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラー 1 'string.Join(string, string[])' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。 エラー 2 引数 '2': 'System.Collections.Generic.List<int>' から 'string[]' に変換できません。

該当のソースコード

C#

1 2 static void Main(string[] args) 3 { 4 int[] src = {3, 1, 5, 4, 2}; 5 var list = new List<int>(); 6 7 // listに要素を追加 8 list.AddRange(src); 9 10 // listをソート 11 list.Sort(); 12 13 Console.WriteLine("[{0}]", string.Join(", ", list)); 14 Console.ReadKey(); 15 }

### 想定していた実行結果

C#

1[1, 2, 3, 4, 5]

●エラーが「string.Join()」の箇所でエラーが出るのですがなぜなのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

配列を要求しているので、そうすればいいです。

C#

1string.Join(", ", list.ToArray())

https://msdn.microsoft.com/ja-jp/library/system.string.join(v=vs.110).aspx
https://msdn.microsoft.com/ja-jp/library/dd992421(v=vs.110).aspx
ここにあるようにIEnumerable<>でもいいのですが、使っているVisual Studioのバージョンが低いようですね

投稿2018/08/24 04:19

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

x_x

2018/08/24 04:23

よく見たらList<int>なんですね。VS2008で動かすならまず文字列にする必要があります。
sinzanmon15

2018/08/24 04:27

ご回答ありがとうございます。 ご教示頂いた内容に変更したのですが、、、 string.Join(", ", list.ToArray())  int[] から string[]に変換できません。とエラーになりました…
x_x

2018/08/24 04:28

2008でもLinqはあるはずなので、 list.Select(a => a.ToString()).ToArray() で行けるのでは?
sinzanmon15

2018/08/24 04:42

ありがとうございます!! Linqを利用するんですね エラーがなくなりました!!!! ありがとうございます。 [1]のみの表示なのですが、 すいません。デバック実行すると list.Select(a => a.ToString()).ToArray() listの中に全て取得しているのですが、 表記が[1]のみでうまくいかないのですが、 これは表示の仕方がダメなのでしょうか?
x_x

2018/08/24 05:12

string.Join(", ", list.Select(a => a.ToString()).ToArray()) が"1"ということでしょうか? 一度変数に書き出して確認してもらえますか?
sinzanmon15

2018/08/24 06:06

すみません。 変数で確認する前に凡ミスしていました。 string.join()で囲っていないため表示がうまくいかなかったのが原因でした。 ご丁寧に教えて頂きありがとうございました!!!
guest

0

ターゲットフレームワークを4.0以上にする事で提示されたソースで問題ない気がします。

VS2008では選べないかもしれません。

投稿2018/08/24 07:35

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sinzanmon15

2018/08/27 02:58

ご回答ありがとうございます。 そもそもターゲットフレームワークが4.0以上なら問題なく使用できるものなんですね!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問