トップページ > プログラム > 2014年09月17日 > 8wy7jTEr

書き込み順位&時間帯一覧

8 位/211 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000010131100007



使用した名前一覧書き込んだスレッド一覧
anonymous
C#, C♯, C#相談室 Part84

書き込みレス一覧

C#, C♯, C#相談室 Part84
774 :anonymous[]:2014/09/17(水) 14:56:32.41 ID:8wy7jTEr
Linq を使った結果が、query.ToArray()
に入っています。

dataGridView1.DataSource = query.ToArray();

として、dataGridViewSorce に表示しています。

dataGridViewのデータ・ソースは、dataTable を取ることも
できることは知っています。

このquery.ToArray()を dataTableに入れる事はできないでしょうか?

できるだけ、簡単で早い処理で行いたいです
C#, C♯, C#相談室 Part84
776 :anonymous[]:2014/09/17(水) 16:53:00.10 ID:8wy7jTEr
>>775
thanks.
CopyToDataTable について調べて、下記にもあるように、
ttp://stackoverflow.com/questions/16948665/copytodatatable-method


DataTable table = query.CopyToDataTable();

としたけど、CopyToDataTable() が選べない状態です。
query. で検索しても、メニューの中に、CopyToDataTableはありませんでした。

VC#2010です。
C#, C♯, C#相談室 Part84
779 :anonymous[]:2014/09/17(水) 17:18:29.59 ID:8wy7jTEr
>>777,778
thanks

XElement root = XElement.Load(@"C:\a.xml");
var query = from SAMPLE in root.Descendants("ACCESS")
select new
{
aaaa = (string)SAMPLE.Element("DTTM").Value,
bbb = (string)SAMPLE.Element("TYPE").Value,
};
となっております。
型を合わせるの意味が勉強不足で理解できておりません。
もう少しヒントを頂けないでしょうか?
C#, C♯, C#相談室 Part84
780 :anonymous[]:2014/09/17(水) 17:28:52.34 ID:8wy7jTEr
いろいろ調べてみましたが、
ttp://stackoverflow.com/questions/1595350/why-am-i-not-getting-copytodatatable-in-linq-query
これ見ると、CopyToDataTable() is only available on IEnumerable<T> where T is or derives from DataRow.
CopyToDataTable() は、DataRowから引き出されたIEnumerble<T>からしか有効ではない
このいみもよくわからないのですが、だからどうすればいいのでしょうか?
C#, C♯, C#相談室 Part84
781 :anonymous[]:2014/09/17(水) 17:36:26.17 ID:8wy7jTEr
>>778

つまり、これを実装すれば、いけるかも?ってところでしょうか
でも実装の仕方がよくわかりません。
他に、query の結果から datatableを作成する方法は無いでしょうか?
C#, C♯, C#相談室 Part84
783 :anonymous[]:2014/09/17(水) 18:51:46.16 ID:8wy7jTEr
>>782
>>素直にnew DataTableしてColumns.AddしてRows.Addしていけばいいよ
ありがとうございます。いままで、コピペでなんとかやってきたので、l
実は、Columns.AddしてRows.Add を書くのも大変そうなのですが、できそうですね。query.ToArray からどうやって、要素を取り出すかから、調べてやってみます
C#, C♯, C#相談室 Part84
784 :anonymous[]:2014/09/17(水) 19:36:26.08 ID:8wy7jTEr
foreach (var p in query.ToArray()) Console.Write("{0}\n", p);
として、query の中から、要素を取り出したいのですが、

インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。
パラメータ名:index

と出てしまいます。
やりたいことは、queryからdataTable を作成したく、Columns.Add するために要素を取り出したいです
ちなみに、同じ所で、dataGridView1.DataSource = query.ToArray(); はOK!です


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。