C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Datatableの条件について

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■87412 / inTopicNo.1)  Datatableの条件について
  
□投稿者/ Genta (5回)-(2018/05/18(Fri) 14:48:39)

分類:[C#] 

var dt4 = ds.Tables.Add("TableD");
dt4.Columns.Add("dt4,typeof(int)");

どうもこんにちは
Datatable(dt3)と(dt4)があります。
今、dt3の条件(dt3の最大値、dt3の最小値、dt3が0、以外の値を抽出したい(条件3つ))
全てを取り除いてDataTable(dt4)に格納したいです。

現状:最大、最小は適応されましたが、0を取り除く部分が適応されません(dt4に0の値が残る)。

    int[] ary4 = new int[600];
var min = ary3.Min();
var Max = ary3.Max();
for (int r = 0; r < ary3.Length; r++)
{
if (min < ary3[r] && ary3[r] < Max && ary3[r] != 0) // 条件付け
{
ary4[r] = ary3[r];
}

}

Array.ForEach(ary4, r => dt4.Rows.Add(r));
dataGridView1.DataSource = dt4;

以上をよろしくお願いします。

引用返信 編集キー/
■87416 / inTopicNo.2)  Re[1]: Datatableの条件について
□投稿者/ PI (1回)-(2018/05/18(Fri) 17:01:13)
2018/05/18(Fri) 17:06:40 編集(投稿者)

> for (int r = 0; r < ary3.Length; r++)
> {
> if (min < ary3[r] && ary3[r] < Max && ary3[r] != 0) // 条件付け
> {
> ary4[r] = ary3[r];
> }

主にVBを使っているので、的外れかも知れませんが、
この条件でfalseの場合、ary4[r]にはどんな値が入っているのでしょうか?
(VBの場合、この配列の各要素の初期値は0となるため、0が残ってしまいます。)

正直、dt3とdt4の構造も分かりませんし、やりたいことが良く分からない
(やりたいことは、もっと簡単にできるのではないかと思う)ので、
中途半端な回答で失礼します。
引用返信 編集キー/
■87417 / inTopicNo.3)  Re[1]: Datatableの条件について
□投稿者/ 魔界の仮面弁士 (1677回)-(2018/05/18(Fri) 17:16:57)
No87412 (Genta さん) に返信
> dt4.Columns.Add("dt4,typeof(int)");

それだと『dt4,typeof(int)』という名前の string 型フィールドを追加することになってしまいます。

dt4 テーブルに『dt4』という名前の int 型フィールドを追加するのであれば、
 dt4.Columns.Add("dt4", typeof(int));
とする必要があります。


> Datatable(dt3)と(dt4)があります。
DataTable 変数名が dt4 で
DataColumn の列名も dt4 なので
どちらの事を述べているのか分かり難いです…。


> int[] ary4 = new int[600];
この配列の要素数は、常に 600 固定なのですか?
画面に表示したいデータも、常に 600 件固定ですか?

配列を利用している理由がさっぱり分からないのですが、
その話はひとまず置いといて……。


> if (min < ary3[r] && ary3[r] < Max && ary3[r] != 0)
> {
>   ary4[r] = ary3[r];
> }
たとえば、min が -5、max が 5 、ary3[r] が 2 だった場合、
ary4[r] に 2 をセットしたい…ということですよね。

現状は else 句が無いようですが、抽出条件を通らない場合、
たとえば ary3[r] の中身が min 値や ゼロ値だった場合、
対応する ary4[r] には、どのような値を入れておきたいのでしょうか?
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ