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

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

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

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

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

解決済

2回答

2865閲覧

データを高速に処理するには

退会済みユーザー

退会済みユーザー

総合スコア0

C#

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

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

0グッド

1クリップ

投稿2018/11/28 02:16

編集2018/11/28 02:18

大量のデータを処理する際に、配列、List、DataTable、LinQ だとデータを高速に処理できるのはどれですか?
処理によって変わると思うので、様々な状況においての速度の比較みたいなのがあればあうれしいです。
また、ただのデータの受け渡しだとどうなのでしょうか?(データの大きさは差が出るほど十分に大きい)

LinQというものが何なのかすらわかっていないど素人なので的外れな質問でしたらすみません。

回答者様の意見でなくとも、参考にできるようなURLがあれば教えてほしいです!!
よろしくお願いいたします。

・Windows Forms
・C#

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

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

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

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

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

guest

回答2

0

ベストアンサー

データや検索法によって違って来るので自分で計ってください。

[C#] Stopwatch クラスで処理時間を計測する方法

昔はアセンブラで組んだ方が C より高速と言われて来ましたが、今では必ずそうなるとは限りません。人間は無限に労力を使えないからです。

投稿2018/11/28 02:27

編集2018/11/28 02:28
Zuishin

総合スコア28660

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

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

Zuishin

2018/11/28 02:28

様々な状況は無限にあるので一覧を作ることは不可能です。
退会済みユーザー

退会済みユーザー

2018/11/28 03:10

回答ありがとうございます。 自分でやってみることにします!!
Zuishin

2018/11/28 03:22

場合によっては Span<T> というのが高速ですが、これもかなり使い所を選びます。 DataTable も使い道があります。 高速というのも大事ですが、さして必要もないチューニングはかえって保守性を落とすことになるので、速度一辺倒ではなく、まずソースの読みやすさを追求するのが良いと思います。 その上で遅いと感じた時にどこがボトルネックなのかを計測してチューニングするのが効率の良いやり方です。
退会済みユーザー

退会済みユーザー

2018/11/28 04:53

Span<T>...初めて聞きました。勉強不足ですね、勉強しときます。 なるほどですね!!直接質問とは関係ないですけど、こういうコツみたいなのは初心者の私にとってはとても助かります。 ありがとうございます!
guest

0

適切に並列化すると速いです。
今時、マルチコアcpuなのに、シングルスレッドしか使っていなかったら、遅いに決まっているでしょ?
http://www.atmarkit.co.jp/ait/spv/1706/21/news021.html

まぁ、並列化できるところは、限られるのですが。

配列、リストで、大した差は無いと思います。配列の方が有利だと思いますけど。
DataTableは、過去の遺物認識で全く使っていないので、わかりません。多機能なので、遅いでしょうとは思うけど。

投稿2018/11/28 02:55

kiichi54321

総合スコア1984

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

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

Zuishin

2018/11/28 03:08

リストというのが List<T> や ArrayList なら内部で配列を使っているので理論的にはオーバーヘッドの分だけ遅いことになりますが、事実上差は出ません。 ただし、List<T> にできて配列にできない処理を自分で実装しなければならなくなるなら、その出来次第では素直に List<T> を使うほうが速くなると思います。 また、引数が配列でないと呼び出せないメソッドもありますが、その場合は変換オーバーヘッドの分だけ配列有利になります。 場合によって使い分けが必要でしょう。
退会済みユーザー

退会済みユーザー

2018/11/28 03:12

kiichi54321さん 回答ありがとうございます。 Zuishinさん 回答ありがとうございます。 なるほどですね。とても参考になりました!! DataTable独自の機能を使うつもりはないので、Listか配列で考えていきたいと思います!! こんな丸投げの質問に回答ありがとうございます(;'∀')
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問