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

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

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

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

Q&A

解決済

List.Add()以外のDataTableからListにデータを変換する方法

samakimi
samakimi

総合スコア3

C#

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

1回答

0グッド

0クリップ

890閲覧

投稿2022/11/09 12:53

編集2022/11/09 14:40

実現したいこと

List.Add()以外のDataTableからListにデータを変換したい

理想
配列をtoListによってクラス型のリストに変換できるようにしたい。

理由

https://garafu.blogspot.com/2016/05/cs-sqlserver-exec-select.html
を参考に調べて、ループで1行ずつList.Add()方法を見つけたけど、
・.ToList()みたいにDataTableのデータ全体をList型にできないか
・コードをキレイに実現したい

該当のソースコード

c#

1public List<ItemModel> GetData() 2 { 3 DataTable table = new DataTable(); 4 // 接続文字列の取得 5 var connectionString = ConfigurationManager.ConnectionStrings["db"].ConnectionString; 6 using (var connection = new SqlConnection(connectionString)) 7 using (var command = connection.CreateCommand()) 8 { 9 try 10 { 11 connection.Open(); 12 command.CommandText = @"SELECT * FROM item"; 13 var adapter = new SqlDataAdapter(command); 14 adapter.Fill(table); 15 } 16 17         List<ItemModel> listdb = new List<ItemModel>(); 18 19 //これ以下の方法がわからない DataTableをList<ItemModel>型に変換する  20 21 22 23 catch (Exception exception) 24 { 25 26 throw; 27 } 28 finally 29 { 30 // データベースの接続終了 31 connection.Close(); 32 } 33 } 34 return table; 35 } 36 37class ItemModel 38 { 39 /// <summary> 40 /// 商品ID 41 /// </summary> 42 public int id { get; set; } 43 44 /// <summary> 45 /// カテゴリID 46 /// </summary> 47 public int categoryItem { get; set; } 48 49 /// <summary> 50 /// 商品名 51 /// </summary> 52 public string itemName { get; set; } 53 54 /// <summary> 55 /// 価格(整数) 56 /// </summary> 57 public int price { get; set; } 58 59 /// <summary> 60 /// 画像 61 /// </summary> 62 public string imageItem { get; set; } 63 64 }

データベースは以下のようになっている
テーブル名:item

id categoryId name price image
1 1 リンゴ 200 apple.jpg
2 1 みかん 150 orange.jpg
3 2 ボールペン 100  pen.jpg

サンプルでは3つのレコードですが、

実際のテーブルは
カラム数:5カラム
レコード数:30
のテーブルとなっています

Windows 10 の Visual Studio 2022 で Windows Forms アプリです。
.NET6のFrameworkです。

List<T> を使う理由は
例えですが、List<T> によってデータベースの商品の名前や値段のlabel,画像の挿入で使うことになっています

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/11/10 12:13

こちらの質問が他のユーザーから「問題・課題が含まれていない質問」という指摘を受けました。

SurferOnWww

2022/11/09 12:56

何を何で作っているか書いてください。(例: Windows 10 の Visual Studio 2022 で Windows Forms アプリをターゲットフレームワーク .NET Framework 4.8 で作っています・・・とか)
samakimi

2022/11/09 13:11

Windows 10 の Visual Studio 2022 で Windows Forms アプリです。 .NETで作っています。
SurferOnWww

2022/11/09 13:14

.NET とは何ですか? .NET Framework ですか .NET Core/.NET ですか? そのバージョンは? Windows Forms アプリなら DataSet/DataTable の方が親和性が高そうですか、List<T> を使いたいのは何故ですか?
samakimi

2022/11/09 13:30 編集

.NET6のFrameworkです。 List<T> を使う理由は 例えですが、List<T> によってデータベースの商品の名前や値段のlabel,画像の挿入で使うことになっています
SurferOnWww

2022/11/09 13:53

> List<T> を使う理由は例えですが、List<T> によってデータベースの商品の名前や値段のlabel,画像の挿入で使うことになっています その意味が分かりません。質問に書いてある DB には「画像」はないですよね。あったとしても、それが DataTable でなくて List<T> でなければならない理由にはならないと思うのですが? たぶん、DB のテーブル一覧を DataGridView に表示して、ユーザーがそれを編集し、編集結果を DB に反映するというようなことがやりたいのではと想像してますが、であれば DataTable を使うべきです。 それから、.NET 6.0 というのは必須ですか? でなければ、.NET Framework 4.x を使いましょう。
SurferOnWww

2022/11/09 23:30

質問者さん、その後無言ですが、続ける気があるなら聞いたことに答えてください。こちらからの質問に不明なことがあれば聞いてください。とにかく無言は NG です。
Zuishin

2022/11/10 05:21

listdb = table.AsEnumerable().Select(row => new ItemModel() { id = row.Field<int>(0), (略)}).ToList();
SurferOnWww

2022/11/10 07:04

> public string imageItem { get; set; } string 型ではなくて byte[] 型になるはず。
samakimi

2022/11/10 11:36 編集

お待たせをして、申し訳ございません。 初めてのプログラミングをするので、 すぐに返事しないといけないというそのようなルールがあるとは知りませんでした。 こちらの都合で常に確認することができませんが これから、時間があれば皆さんにご返信をするつもりです。 よろしくお願い申し上げます。
samakimi

2022/11/10 11:31

→.NET 6.0 というのは必須ですか?でなければ、.NET Framework 4.x を使いましょう。 について プロジェクトの作成時にWindows フォームアプリでは.NET6 の選択しかなかったの で必須になってしまいます
samakimi

2022/11/10 11:33

List<T> を使う理由はあまり詳しくはありませんが 参考書ではDataTableよりListの方がデバッグなどの実装のアクセス速度が速くなるそうです。
samakimi

2022/11/10 11:38

コメントや回答をしてくれたとき、 きになったことをさらに質問にみたいな形になるかもしれませんが、 よろしくお願いいたします。
samakimi

2022/11/10 11:43

> public string imageItem { get; set; } →string 型ではなくて byte[] 型になるはず。 についてはデータベースでは画像の列がnvarchar型だったので、 C#ではpublic string imageItem { get; set; }にしました。
samakimi

2022/11/10 11:55

Zuishinさんコメントありがとうございます。 listdb = table.AsEnumerable().Select(row => new ItemModel() { id = row.Field<int>(0), (略)}).ToList(); のAsEnumerable()はどういうメソッドであるかなどがわからない部分すこしあります。 わがままかもしれないですが、 できればそれを含めて、回答で解説できませんか? お願いいたします。
SurferOnWww

2022/11/10 12:12

> 初めてのプログラミングをするので、すぐに返事しないといけないというそのようなルールがあるとは知りませんでした。 Terarail で決まったルールとかがあるわけではないようですが、社会人の常識として、質問して何らかのレスがあったらタイムリーにフィードバックするのは当たり前では? 夜しか見れないとかの事情があれば、質問する時点でその旨書いてはいかが?
samakimi

2022/11/10 12:31

わかりました ご指摘ありがとうございます。
SurferOnWww

2022/11/11 00:57

> プロジェクトの作成時にWindows フォームアプリでは.NET6 の選択しかなかったので必須になってしまいます それは Visual Studio でプロジェクトを作成するとき選んだテンプレートが .NET Core/.NET 用だったからでしょう。他に「Windows フォームアプリケーション (.NET Framework)」というのがあるはずなので、それを選んでプロジェクトを作成してください。
SurferOnWww

2022/11/11 01:01

>> public string imageItem { get; set; } > →string 型ではなくて byte[] 型になるはず。 > についてはデータベースでは画像の列がnvarchar型だったので、 > C#ではpublic string imageItem { get; set; }にしました。 そうだとすると「画像」ではなく文字列です。name 列と同じ。 用語は正確に使いましょう。でないと、文章でやり取りするここのようなサイトでは話が通じません。
SurferOnWww

2022/11/11 01:07

> AsEnumerable()はどういうメソッドであるかなどがわからない部分すこしあります。 「すこし」ではなくて「全く」ではないのですか? 正直に書きましょう。もし、ホントに「すこし」ならその「すこし」というのは何なのか書いてください。 DB のフィールドの NULL 可/不可によって考えなければならないことがある(NULL 可の列はそれなりの対処が必要)ということは分かってますか?
samakimi

2022/11/11 11:47

お待たせをして、申し訳ございません。 今コメントの部分を確認しました。 正直に書きますとlistdb = table.AsEnumerable().Select(row => new ItemModel() { id = row.Field<int>(0), (略)}).ToList(); によってDateTableをList<ItemModel>に変換できることはわかりました。 しかし、どのようなやり方でList<ItemModel>に変換しているのかわかりません。 特にAsEnumerable()を使うことで何が起こることが全くわかりません。
samakimi

2022/11/11 11:57 編集

→(NULL 可の列はそれなりの対処が必要) について データベースの1つ列でnullを可によって、Listの数字では勝手にnullではなく0になってしまうなど データベースでは何も入っていないのに、Listにすると値が自動的に入れられることやnullによりエラーが起こるので、それに対処しないといけない という解釈でよいですか
SurferOnWww

2022/11/11 12:09

【追記】と【追記2】であなたの疑問には回答済です。質問のコメント欄に、回答に対するフィードバックを返してください。回答であなたの課題が解決したならベストアンサーをつけてクローズしてください。
Zuishin

2022/11/11 12:55

> 特にAsEnumerable()を使うことで何が起こることが全くわかりません。 「ここに書いてあります。」と紹介したページに書いてありますが、LIINQ to DataSet が使えるようになります。 Select メソッドは各行を別の型に変換するもので、ToList はそれらをまとめてリストにするものです。 非常に具体な方法を書き、それがどういう意味かが書いてあるページを紹介しているので、どのようなやり方か聞かれる意味自体わかりません。
samakimi

2022/11/11 15:16 編集

実際に紹介してくれたページを確認しましたがAsEnumerable()がどのようなことをしているのかわからないです。
Zuishin

2022/11/11 15:18

> DataTable で AsEnumerable を呼び出すと、ジェネリック IEnumerable<T> インターフェイスを実装するオブジェクトが返されます。これが、LINQ to DataSet クエリのデータ ソースとして機能します。 このまんまです。
Zuishin

2022/11/11 15:23

オブジェクトがメソッドやプロパティを持つのはご存じの通りです。 AsEnumerable を呼び出すと、Select や ToList といったメソッドを持つオブジェクトが戻ります。 正確には IEnumerable<T> というインターフェースを持つオブジェクトで、Select や ToList は IEnumerable<T> インターフェースの拡張メソッドです。
Zuishin

2022/11/11 15:32

int 型のオブジェクトの ToString メソッドを呼び出すと、string 型のオブジェクトが戻ります。そして string 型には int 型のオブジェクトを返す Length プロパティがあります。 int i = 10; string s = i.ToString(); int len = s.Length; ここで int len = i.ToString().Length のように書くと、i の ToString メソッドを呼び出した結果戻る文字列型のオブジェクトの Length プロパティを変数 len に入れることができます。 同様に table.AsEnumerable().Select(... と書くと、table の AsEnumerable メソッド(正確には拡張メソッド)から戻る IEnumerable<T> インターフェースを持つオブジェクトの Select メソッドを呼び出すことができます。
samakimi

2022/11/11 16:00

なるほどわかりました。 解説してくれてありがとうございます。
Zuishin

2022/11/11 22:41

結局、何がわからなかったんですか? > 配列をtoListによってクラス型のリストに変換できるようにしたい。 これを実現するために AsEnumerable を呼び出すというただそれだけのことで、これを呼び出さない限り ToList は使えず、呼び出すことで使えるようになることを最初から示していますが。
SurferOnWww

2022/11/11 23:09

そもそものやりたいことは何だったのですか? 絶対 XY 問題になっていると思うのですが。 上にコメントした、DB のテーブル一覧を DataGridView に表示して、ユーザーがそれを編集し、編集結果を DB に反映するというようなことがやりたいことであれば、List<T> ではなくて DataTable を使うべきです。 そして、フレームワークは .NET 6.0 ではなくて .NET Framework 4.x にするべきです。
Zuishin

2022/11/11 23:22

なぜ DataTble が直接 IEnumerable<T> を実装せず、AsEnumerable を呼び出して別のオブジェクトを使わなければいけないかということが聞きたいなら、DataTable は Select メソッドを持っていて、それが競合するからです。
samakimi

2022/11/12 12:24

SurferOnWwwさんの質問やりたいことについては データベースなど情報をもってくるにはDataTbleする方法にしかわからず、 List<T> によってデータベースの商品の名前や値段のlabel,画像の挿入ことが前提になっている。 どうすればDataTableからtoListを使うみたいデータを簡単に変換できることかわからなかったです。 そしてプロジェクトの作成時にWindows フォームアプリでは.NET6 の選択しかなかったです。 確かに「Windows フォームアプリケーション (.NET Framework)」というのがあり、それを選んでプロジェクトを作成することはできますが、 なぜフレームワークは .NET 6.0 ではなくて .NET Framework 4.x にするべきなのか理由を教えてください。
samakimi

2022/11/12 12:31

Zuishinさんの何がわからなかったことについては 自分がわからないことはAsEnumerable メソッド()を使うことで何が起こることです。 コメントを書いてくれたことでDataTbleからtoList()が使える IEnumerable<T> ?というものに型変換することです。 ただ、新しく出たことIEnumerable<T> ?というものがわかりません。
SurferOnWww

2022/11/12 14:13

> List<T> によってデータベースの商品の名前や値段のlabel,画像の挿入ことが前提になっている。 「前提」とは何ですか? 自分でそう決めた? ならばそういう「前提」は無しです。適材適所で考えるべきでしょう。 > なぜフレームワークは .NET 6.0 ではなくて .NET Framework 4.x にするべきなのか理由を教えてください。 新しいデータ ソースの追加 https://learn.microsoft.com/ja-jp/visualstudio/data-tools/add-new-data-sources?view=vs-2022 上の記事の最初の方に出てくる注意書きを読んでください。

回答1

0

ベストアンサー

DB に SELECT クエリを投げて List<ItemModel> 型のオブジェクトを取得できればいいのですよね?

そのために DataTable を経由しなければならない理由が何かあるのですか?

なければ Visual Studio の ADO.NET Entity Data Model ウィザードを使って Entity Data Model を生成して、それをベースに Linq to Entities で List<ItemModel> 型のオブジェクトを取得してはいかがですか?


【追記】

質問者さんはこちらの質問に答えないで去ってしまったようなのでいろいろ不明ですが、DataTable を経由しなければならない理由はないと理解して、

例でもよいのでサンプルコードを書いてくれますか?

・・・に答えて Linq to Entities で List<T> 型のオブジェクトを取得するやり方を以下に書いておきます。

.NET 6.0 だそうですので EF Core を使うことになりますが、EF Core では ADO.NET Entity Data Model ウィザードは使えないので、リバースエンジニアリングという方法でコンテキストクラスとエンティティクラスを作ります。

詳しい方法は以下の記事を見てください。

リバース エンジニアリング
https://learn.microsoft.com/ja-jp/ef/core/managing-schemas/scaffolding/?tabs=dotnet-core-cli

Scaffold-DbContext
https://learn.microsoft.com/en-us/ef/core/cli/powershell#scaffold-dbcontext

Microsoft のサンプル SQL Server データベース Northwind をリバースエンジニアリングすると、以下のようなコードが自動生成されます。自力でコードを書く必要はありません

NorthwindContext コンテキストクラス

C#

1using System; 2using System.Collections.Generic; 3using Microsoft.EntityFrameworkCore; 4using Microsoft.EntityFrameworkCore.Metadata; 5using MvcCore6App2.Models; 6 7namespace MvcCore6App2.Data 8{ 9 public partial class NorthwindContext : DbContext 10 { 11 public NorthwindContext() 12 { 13 } 14 15 public NorthwindContext(DbContextOptions<NorthwindContext> options) 16 : base(options) 17 { 18 } 19 20 public virtual DbSet<Category> Categories { get; set; } = null!; 21 public virtual DbSet<Customer> Customers { get; set; } = null!; 22 public virtual DbSet<Employee> Employees { get; set; } = null!; 23 public virtual DbSet<Order> Orders { get; set; } = null!; 24 public virtual DbSet<OrderDetail> OrderDetails { get; set; } = null!; 25 public virtual DbSet<Product> Products { get; set; } = null!; 26 public virtual DbSet<Shipper> Shippers { get; set; } = null!; 27 public virtual DbSet<Supplier> Suppliers { get; set; } = null!; 28 29 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 30 { 31 if (!optionsBuilder.IsConfigured) 32 { 33 optionsBuilder.UseSqlServer("・・・接続文字列・・・"); 34 } 35 } 36 37 // ・・・中略・・・ 38 39 } 40}

Category エンティティクラス

以下の画像の Categories テーブルに対応する Category クラス。

イメージ説明

C#

1using System; 2using System.Collections.Generic; 3using System.ComponentModel.DataAnnotations; 4using System.ComponentModel.DataAnnotations.Schema; 5using Microsoft.EntityFrameworkCore; 6 7namespace MvcCore6App2.Models 8{ 9 [Index("CategoryName", Name = "CategoryName")] 10 public partial class Category 11 { 12 public Category() 13 { 14 Products = new HashSet<Product>(); 15 } 16 17 [Key] 18 [Column("CategoryID")] 19 public int CategoryId { get; set; } 20 [StringLength(15)] 21 public string CategoryName { get; set; } = null!; 22 [Column(TypeName = "ntext")] 23 public string? Description { get; set; } 24 [Column(TypeName = "image")] 25 public byte[]? Picture { get; set; } 26 27 [InverseProperty("Category")] 28 public virtual ICollection<Product> Products { get; set; } 29 } 30}

上の NorthwindContext コンテキストクラスと Category エンティティクラスを使えば、以下の 2 行で SQL Server の Categories テーブルのレコードすべてを List<Category> 型のオブジェクトとして取得できます。

NorthwindContext context = new NorthwindContext(); List<Category> list = context.Categories.ToList();

質問者さんのやりたいこと、

・.ToList()みたいにDataTableのデータ全体をList型にできないか
・コードをキレイに実現したい

・・・を満足していると思いませんか?


【追記2】

質問者さん、出てきたと思ったらまた去ってしまったようですが、下のコメント欄の質問者さんのコメントの、

自分が考えていたのは自分のサンプルのようにすでにDatatable型の表があって、それをクラス型のListに変えることが知りたかったですが、

についても答えておきます。そんなことをするのに何の意味があるのかは、はなはだ疑問ではありますが・・・

質問欄下のコメント欄に書きましたが、DB のフィールドの NULL 可/不可によって考えなければならないことがあります。

上の Categories テーブルで言うと Description 列と Picture 列が NULL 可になっており、それに該当する Category クラスのプロパティの型がそれぞれ string? と byte[]? になっている点に注目してください。自力でクラスのコードを書く場合そこは自分で DB の NULL 可/不可を調べて書く必要があります。

それから、NULL がある場合、List<T> を作る元になる DataTable の当該セルがどうなるかにも要注意です。

例えば、以下の画像のように Description 列に NULL が含まれている場合、

イメージ説明

SqlDataAdapter で作成した DataTable では当該セルには DBNull.Value が入ります。

イメージ説明

なので、DataRow["Description"] で取得したセルのデータを string にキャスト(=ボックス化解除)すると DBNull.Value が入っている場合はエラーになります。

Zuishin さんが質問のコメントで提案されている DataRowExtensions.Field メソッドはそのあたりには対応しているようで、DBNull.Value が入っている場合は null を返してくれます。

というわけで、上の Categories テーブルから SqlDataAdapter で DataTable を作成し、それから List<Category> 型のオブジェクトを作るなら以下のようにするのが良さそうです。Visual Studio で .NET 6.0 のプロジェクトを作るとデフォルトで NULL 許容参照型が有効になりますので、その対応も考える必要があります。

C#

1using System.Data; 2using System.Data.SqlClient; 3 4var selectQuery = "SELECT [CategoryID],[CategoryName],[Description],[Picture] FROM [Categories]"; 5var connString = "・・・接続文字列・・・"; 6var table = new DataTable(); 7using (var connection = new SqlConnection(connString)) 8{ 9 using (var command = new SqlCommand(selectQuery, connection)) 10 { 11 var adapter = new SqlDataAdapter(command); 12 adapter.Fill(table); 13 } 14} 15 16var list = table.AsEnumerable() 17 .Select(row => new Category { 18 CategoryId = row.Field<int>("CategoryID"), 19 CategoryName = row.Field<string>("CategoryName")!, 20 Description = row.Field<string>("Description"), 21 Picture = row.Field<byte[]>("Picture") 22 }) 23 .ToList(); 24 25foreach(var c in list) 26{ 27 Console.WriteLine($"ID: {c.CategoryId}, Name: {c.CategoryName}, " + 28 $"Description: {c.Description ?? "null が入ってます"}"); 29} 30 31 32public class Category 33{ 34 public int CategoryId { get; set; } 35 public string CategoryName { get; set; } = null!; 36 public string? Description { get; set; } 37 public byte[]? Picture { get; set; } 38}

結果は以下のようになります。

イメージ説明

投稿2022/11/09 13:06

編集2022/11/11 07:01
SurferOnWww

総合スコア17417

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

samakimi

2022/11/09 13:16

自分で検索した参考書やサイトでSQLなどのデータをDataTableで格納されています。 すみません。どのように作成すればよいかわからないです 例でもよいのでサンプルコードを書いてくれますか?
SurferOnWww

2022/11/09 13:28

質問のコメント欄のあなたのレス、 > Windows 10 の Visual Studio 2022 で Windows Forms アプリです。 を質問欄を編集して追加情報として追記してください。 合わせて、私が聞いた、 > .NET とは何ですか? .NET Framework ですか .NET Core/.NET ですか? そのバージョンは? ・・・も質問を編集して追記してください。 さらに、 > Windows Forms アプリなら DataSet/DataTable の方が親和性が高そうですか、List<T> を使いたいのは何故ですか? にも答えてください。
samakimi

2022/11/10 11:55

回答を詳しく書いてくれてありがとうございます。 自分が考えていたのは 自分のサンプルのようにすでにDatatable型の表があって、 それをクラス型のListに変えることが知りたかったですが、 そのような方法があることは知らなかったです。
SurferOnWww

2022/11/10 12:07

ここのような文章でやり取りする掲示板で質問するなら、話が通じる程度まで知識をつけるべく、頑張って勉強してください。それから、これを読んでみましょう⇒ https://teratail.com/help/question-tips 特に以下のところ: "人に質問をするには、自分が何を尋ねたいかを知っている必要があります。これは、「自分が今『何がわからないのか』がわかっていて、言語化できている」ということです。"
samakimi

2022/11/11 12:47 編集

回答を書いてくれてありがとうございます。 追記2の部分によってDataTableからListにデータを変換することわかりました。 しかし、コメントでも書きましたが table.AsEnumerable().Select(row => new Category { CategoryId = row.Field<int>("CategoryID"), CategoryName = row.Field<string>("CategoryName")!, Description = row.Field<string>("Description"), Picture = row.Field<byte[]>("Picture") }) .ToList(); のAsEnumerable.Select()を使うことで何が起こることが全くわかりません。 ()の中ではCategoryクラスの各項目ごとに列の値を決めて、listという変数に代入し、tolist()によってList型に変えるイメージであると解釈しています。 自分の解釈に間違いがあったら指摘をお願いします。 おそらくAsEnumerable.Select()の部分によって何をしているとわかったら解決できます。 その部分だけでも回答の修正をお願いします。
SurferOnWww

2022/11/11 13:05

> その部分だけでも回答の修正をお願いします。 回答の修正って何を言ってるの? 修正するようなところはありません。失礼な発言ですよ。「その部分の説明をお願いします」と言うべき。日本語を勉強しましょう。
samakimi

2022/11/11 13:16

すみませんでした。 失礼なことを書いてしまいました。 AsEnumerable.Select()の部分の説明をお願いします。
SurferOnWww

2022/11/11 13:19

質問欄下のコメント欄の Zuishin さんの 2022/11/11 21:55 のコメントに説明されています。 読んでない? 読んでレスを返さないのも失礼だと認識してますか?

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

C#

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