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

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

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

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

626閲覧

LINQ拡張メソッドについて 記述

ae3

総合スコア13

C#

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/10/21 04:21

LINQについてですが、以下のようにリストを作成しようとしています。

max = 3; int itemNo = 0; var list = Enumerable .Range(0, max) .Select(c => itemNo = ItemMngSp.GetItems[c].itemID) .ToArray() ;

上記のようにかいたときに「c」の値にはRangeの0~の連番が入ると思われますが
その認識であっているでしょうか。
ItemMngSpには取得したい値をいれています。

同じように.Select(c => itemNo~の記述を入れるとOutOfRangのエラーがでてしまうので
使い方が間違っているかと思います。
知識不足で申し訳ないですが、上記の認識であっているか教えていただきたいと思います。

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

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

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

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

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

BluOxy

2020/10/21 06:01 編集

> その認識であっているでしょうか > 使い方が間違っているかと思います > 知識不足で申し訳ないですが、上記の認識であっているか教えていただきたいと思います リファレンスに書かれていることが正しいので、認識が合っているか確認するにはリファレンスと見比べましょう。もしリファレンスの見方が分からない場合はその方法を知るところから始めてください。 https://docs.microsoft.com/ja-jp/dotnet/api/system.linq.enumerable.range?view=netcore-3.1
退会済みユーザー

退会済みユーザー

2020/10/21 05:09

ItemMngSp.GetItems[c].itemID って何ですか? 定義不明のようです。 ItemMngSp とかでググっても出てこないので、自分だけが知らないということでもなさそうですけど・・・
Zuishin

2020/10/21 05:58

c には 0 から数えて 3 つ、つまり 0 から 2 までの数値が入りますが、Select の使い方が怪しいので、間違っているのは ToArray の方ではないかと思います。
guest

回答1

0

上記のようにかいたときに「c」の値にはRangeの0~の連番が入ると思われますが

その認識であっているでしょうか。

そこに疑問を持つなら

csharp

1foreach (var i in Enumerable.Range(0, 3).Select(c => c)) 2 Console.WriteLine(i.ToString());

とかやって確認すればいいんじゃない。

同じように.Select(c => itemNo~の記述を入れるとOutOfRangのエラーがでてしまうので

使い方が間違っているかと思います。

エラーが出てるなら正確に書こう。(OutOfRangなんてエラーはない)

単純にコレクションの範囲を越えてアクセスしようとしただけだろうし、この程度の数なら

csharp

1ItemMngSp.GetItems[0] 2ItemMngSp.GetItems[1] 3ItemMngSp.GetItems[2]

ってひとつずつ確認しても同じエラーが出ると思うけど。

投稿2020/10/21 04:40

gentaro

総合スコア8949

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問