teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

【追伸】追加

2016/09/23 10:32

投稿

退会済みユーザー
answer CHANGED
@@ -4,4 +4,83 @@
4
4
 
5
5
  ```
6
6
  (data["詳細項目_No"] >= 1 && data["詳細項目_No"] <= n)
7
+ ```
8
+
9
+ 【追伸】
10
+
11
+ コメントに書きましたが、検証に使ったサンプルをアップしておきます。
12
+
13
+ ```
14
+ using System;
15
+ using System.Collections.Generic;
16
+ using System.Linq;
17
+ using System.Text;
18
+ using System.Data;
19
+
20
+ namespace ConsoleAppLinq2
21
+ {
22
+ class Program
23
+ {
24
+ // データソース用の DataTable を作成
25
+ protected DataTable CreateDataSource()
26
+ {
27
+ DataTable dt = new DataTable();
28
+ DataRow dr;
29
+
30
+ dt.Columns.Add(new DataColumn("ID", typeof(Int32)));
31
+ dt.Columns.Add(new DataColumn("Name", typeof(string)));
32
+ dt.Columns.Add(new DataColumn("Type", typeof(string)));
33
+ dt.Columns.Add(new DataColumn("Price", typeof(Int32)));
34
+ dt.Columns.Add(new DataColumn("Qty", typeof(Int32)));
35
+ dt.Columns.Add(new DataColumn("Amount", typeof(Int32)));
36
+ dt.Columns.Add(new DataColumn("CategoryID", typeof(Int32)));
37
+ dt.Columns.Add(new DataColumn("Note", typeof(string)));
38
+ dt.Columns.Add(new DataColumn("Discontinued", typeof(bool)));
39
+ dt.Columns.Add(new DataColumn("DateTime", typeof(DateTime)));
40
+
41
+ for (int i = 0; i < 25; i++)
42
+ {
43
+ dr = dt.NewRow();
44
+ dr["ID"] = i;
45
+ dr["Name"] = "Product Name_" + i.ToString();
46
+ dr["Type"] = "Product Type " + (100 - i).ToString();
47
+ dr["Price"] = 123000 * (i + 1);
48
+ dr["Qty"] = (i + 1) * 20;
49
+ dr["Amount"] = 123000 * (i + 1) * (i + 1);
50
+ dr["CategoryID"] = 100 - i;
51
+ dr["Note"] = "Note_" + i.ToString();
52
+ dr["Discontinued"] = (i % 2 == 0) ? true : false;
53
+ dr["DateTime"] = DateTime.Now.AddDays(i);
54
+ dt.Rows.Add(dr);
55
+ }
56
+ return dt;
57
+ }
58
+
59
+ static void Main(string[] args)
60
+ {
61
+ Program prg = new Program();
62
+ DataTable getDt = prg.CreateDataSource();
63
+
64
+ int n = 5;
65
+ var query = from data in getDt.AsEnumerable()
66
+ where ((int)data["ID"] >=1 && (int)data["ID"] <= n)
67
+ select data;
68
+
69
+ foreach (DataRow row in query)
70
+ {
71
+ Console.WriteLine("ID: {0}, Name: {1}, Type: {2}, Price: {3}",
72
+ row["ID"], row["Name"], row["Type"], row["Price"]);
73
+ }
74
+
75
+ /*
76
+ 結果は:
77
+ ID: 1, Name: Product Name_1, Type: Product Type 99, Price: 246000
78
+ ID: 2, Name: Product Name_2, Type: Product Type 98, Price: 369000
79
+ ID: 3, Name: Product Name_3, Type: Product Type 97, Price: 492000
80
+ ID: 4, Name: Product Name_4, Type: Product Type 96, Price: 615000
81
+ ID: 5, Name: Product Name_5, Type: Product Type 95, Price: 738000
82
+ */
83
+ }
84
+ }
85
+ }
7
86
  ```