VisualStudio2008より追加された便利で強力な機能
統合言語クエリ (LINQ : Language Integrated Query)
ちょっと使ってみると、意外と難しいし、テクニック的にも奥が深いものです。
関数型言語にしかないような機能ラムダ式(Lambda式)などはオブジェクト指向とは一味違う機能です。
DataBaseの操作にも、Xmlの操作にも、さらにもっと単純な配列なコンテナにさえ機能する
言語共通・高汎用な統合言語クエリを皆で一緒にマターリ勉強しましょう。
質問、便利なマイテクニックの発表、いろいろやっちゃってください。
探検
【VB.NET】LINQ友の会【C#, C♯, C#】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2008/02/09(土) 23:51:34745デフォルトの名無しさん
2012/08/07(火) 05:22:08.32 異なるURLに対して一斉にHTTPでデータ取ってくる処理とかかな
746デフォルトの名無しさん
2012/08/08(水) 00:47:56.74747デフォルトの名無しさん
2012/08/08(水) 01:03:58.30 横から補足すると
ParallelはCPU負荷が低いと並列度を上げるために新しいスレッドを立ち上げる。
そのためネットワークIO待ちで使うと数十のスレッドが次々と作られて非効率的。
スレッドの立ち上げは重い処理だし、メモリ使うし、切り替えにもオーバーヘッドかかるしでいい事ないよ。
ParallelはCPU負荷が低いと並列度を上げるために新しいスレッドを立ち上げる。
そのためネットワークIO待ちで使うと数十のスレッドが次々と作られて非効率的。
スレッドの立ち上げは重い処理だし、メモリ使うし、切り替えにもオーバーヘッドかかるしでいい事ないよ。
748デフォルトの名無しさん
2012/08/08(水) 10:13:12.64 すべてのクエリ文はobj.Where(〜).Select(〜〜)みたいなメソッドチェーンに置き換え可能なんですか?
749デフォルトの名無しさん
2012/08/08(水) 16:38:48.52750デフォルトの名無しさん
2012/08/09(木) 16:02:22.16 Zelda対応はいつになりますか?
751デフォルトの名無しさん
2012/08/09(木) 21:01:37.80 一瞬なにかと…。リンクね。Legend of Zelda なら店頭へ
752デフォルトの名無しさん
2012/09/14(金) 12:08:02.54 オフィシャルなドキュメントってhttp://msdn.microsoft.com/ja-jp/library/vstudio/bb387098.aspx
なんですか?何か右欄のスペースが凄い見にくい・・・。
なんですか?何か右欄のスペースが凄い見にくい・・・。
753デフォルトの名無しさん
2012/09/14(金) 14:09:00.18 <root>
<question>
<qtext>にしむらひろゆき?</qtext>
<correctid>3</correctid>
<choices>
<choice>
<choiceid>1</choiceid>
<ctext>MS</ctext>
</choice>
<choice>
<choiceid>2</choiceid>
<ctext>Apple</ctext>
</choice>
<choice>
<choiceid>3</choiceid>
<ctext>2ch</ctext>
</choice>
</choices>
</question>
</root>
上のようなXMLがあったとして
「にしむらひろゆき?:2ch」という結果を得たい場合、どのようにすれば良いでしょうか?
XDocument xdoc = XDocument.Load(@"c:\sample.xml");
XNamespace ns = "http://2ch.net";
var q = from n in xdoc.Descendants(ns + "question")
where (string)n.Element(ns + "correctid") == (string)n.Element(ns + "choiceid")
select (string)n.Element(ns + "qtext") + ":" + (string)n.Element(ns + "ctext");
こんな感じでは上手くいきませんでした。
<question>
<qtext>にしむらひろゆき?</qtext>
<correctid>3</correctid>
<choices>
<choice>
<choiceid>1</choiceid>
<ctext>MS</ctext>
</choice>
<choice>
<choiceid>2</choiceid>
<ctext>Apple</ctext>
</choice>
<choice>
<choiceid>3</choiceid>
<ctext>2ch</ctext>
</choice>
</choices>
</question>
</root>
上のようなXMLがあったとして
「にしむらひろゆき?:2ch」という結果を得たい場合、どのようにすれば良いでしょうか?
XDocument xdoc = XDocument.Load(@"c:\sample.xml");
XNamespace ns = "http://2ch.net";
var q = from n in xdoc.Descendants(ns + "question")
where (string)n.Element(ns + "correctid") == (string)n.Element(ns + "choiceid")
select (string)n.Element(ns + "qtext") + ":" + (string)n.Element(ns + "ctext");
こんな感じでは上手くいきませんでした。
754デフォルトの名無しさん
2012/09/14(金) 22:44:52.58 var x = from q in xml.Descendants("question")
let id = (string)q.Element("correctid")
let qt = (string)q.Element("qtext")
from choice in q.Element("choices").Elements("choice")
where (string)choice.Element("choiceid") == id
select qt + ":" + (string)choice.Element("ctext");
XNamespaceは略
let id = (string)q.Element("correctid")
let qt = (string)q.Element("qtext")
from choice in q.Element("choices").Elements("choice")
where (string)choice.Element("choiceid") == id
select qt + ":" + (string)choice.Element("ctext");
XNamespaceは略
755デフォルトの名無しさん
2012/09/14(金) 22:57:50.31756デフォルトの名無しさん
2012/09/14(金) 23:02:47.39 いやlet句はこの場合楽できるぐらいの意味しかない
from句を重ねて使用するのが肝
from句を重ねて使用するのが肝
757デフォルトの名無しさん
2012/09/15(土) 10:41:08.80 LINQ便利だけど、ローカル変数検索なんかで使う場合だと、遅いんだよね。
そろそろCLがコンパイル済みの最終実行状態を出力してくれればいいのに。。
そろそろCLがコンパイル済みの最終実行状態を出力してくれればいいのに。。
758デフォルトの名無しさん
2012/09/15(土) 10:43:41.46759デフォルトの名無しさん
2012/09/15(土) 21:35:58.16 さっき勉強したんだがLinq気持ちよすぎ精子吹いたwwwだれかC++に移植してくれ
760デフォルトの名無しさん
2012/09/17(月) 14:19:32.69 c++でも使えるだろ
761デフォルトの名無しさん
2012/10/09(火) 17:16:21.87762デフォルトの名無しさん
2012/10/20(土) 04:17:21.52 where区で条件を動的にする方法はありませんか?
763デフォルトの名無しさん
2012/10/20(土) 09:53:53.12 >>762
(1)パラメータクエリで解決するケース
(2)さらに、and や or の条件が増えたり減ったりするなら、文字列をつぎはぎ
(3)実はSQL文で結合とかいろいろ熟練すれば解決するケース
のどれなんだろうな
(1)パラメータクエリで解決するケース
(2)さらに、and や or の条件が増えたり減ったりするなら、文字列をつぎはぎ
(3)実はSQL文で結合とかいろいろ熟練すれば解決するケース
のどれなんだろうな
764デフォルトの名無しさん
2012/10/20(土) 10:17:54.51 変数と変数の比較なら動的じゃないか。
765デフォルトの名無しさん
2012/10/20(土) 18:39:25.06 三項演算子使えばいけそうだな
766デフォルトの名無しさん
2012/10/20(土) 21:37:04.90 誰もが通るスパゲッティ率最高のSQL組立
767デフォルトの名無しさん
2013/02/01(金) 13:55:35.49 class Data {
public List<Item> Items = new Items();
}
List<Data> dat = new List<Data>();
// ↑のdatリストから各Itemsプロパティの中身を全て抜出し、
// 1次元配列として得るにはどうしたらいいでしょうか?
public List<Item> Items = new Items();
}
List<Data> dat = new List<Data>();
// ↑のdatリストから各Itemsプロパティの中身を全て抜出し、
// 1次元配列として得るにはどうしたらいいでしょうか?
768デフォルトの名無しさん
2013/02/01(金) 16:52:24.22769デフォルトの名無しさん
2013/02/01(金) 17:14:16.34770デフォルトの名無しさん
2013/03/30(土) 19:52:58.27 IEnumerableとかIQueryableとかって会話で使うとき
なんて発音してる?
遅延実行のナイスな活用例って
無限リストとか馬鹿でかいデーターソースしかないのかな
処理時間を確定させたくていつもToListしちゃう
なんて発音してる?
遅延実行のナイスな活用例って
無限リストとか馬鹿でかいデーターソースしかないのかな
処理時間を確定させたくていつもToListしちゃう
771デフォルトの名無しさん
2013/03/30(土) 21:04:48.54 アイエヌュムェラボー
アイクェリャボー
アイクェリャボー
772デフォルトの名無しさん
2013/04/01(月) 15:49:06.61 愛イニュメラブル
愛クエリアブル
愛クエリアブル
773デフォルトの名無しさん
2013/04/03(水) 23:53:18.12 アイナマーエーブル
イクォータブル
イクォータブル
774デフォルトの名無しさん
2013/04/04(木) 11:04:11.27 INumerable?
Equatable?
Equatable?
775デフォルトの名無しさん
2013/04/05(金) 01:05:00.06 from x in xvideos where x.tag.Contains("anal") select x; /* 夜プログラミング部 */
http://engawa.2ch.net/test/read.cgi/poverty/1365090013/
http://engawa.2ch.net/test/read.cgi/poverty/1365090013/
776デフォルトの名無しさん
2013/04/18(木) 11:29:49.06 エロい人おしえてくり。
string[] testdata = {"BT","SS","TB","MCQ","AABC","NT"};
string[] result = testdata.Where(p => p.Length == 2 ).ToArray();
だと
{"BT","SS","TB","NT"}
が帰ってくるのですが、中の順番が乱れることはないって保障されているのでしょうか?
保障されていないのなら元の順番をでSortすることは可能でしょうか?
string[] testdata = {"BT","SS","TB","MCQ","AABC","NT"};
string[] result = testdata.Where(p => p.Length == 2 ).ToArray();
だと
{"BT","SS","TB","NT"}
が帰ってくるのですが、中の順番が乱れることはないって保障されているのでしょうか?
保障されていないのなら元の順番をでSortすることは可能でしょうか?
777デフォルトの名無しさん
2013/04/18(木) 11:45:38.06 配列のイテレータは順番が保障されている。
Whereはフィルタだけで順番の変更はしない。
並べ替えたいならOrderBy
>...ata.Where(p => p.Length == 2).OrderBy(s => s).ToAr...
Whereはフィルタだけで順番の変更はしない。
並べ替えたいならOrderBy
>...ata.Where(p => p.Length == 2).OrderBy(s => s).ToAr...
778デフォルトの名無しさん
2013/04/22(月) 07:29:14.20 課題が解けずに困ってます。教えていただけませんか?
VBはスレ違いでしたらすいません。
スペースが文字化けしてしまうので-で代用しています。
Dim-;Inpdata,OutData-As-String
Dim-;RecordCnt-As-;Integer
Using-sr-As-;New-StreamReader(Text1,Shift_JIS),_
-sw-As-New-StreamWriter(Text2,Shift_JIS)
-Do-While ;Sr.Peek>=0
---RecordCnt=RecordCnt ;+ ;1
---OutData=;InpData
---sw.WriteLine(OutData)
Loop
上記コードについて以下のように処理するようコードを変更もしくは追加しなさい。
(変更or追加するところだけ教えてください)
1.変数InpDataの2桁目から4桁目の値に従い、文字属性の変数Age5に次の値を代入。
(000-004のとき01、005-009のとき02、010-014のとき03、015-019のとき04)
また出力ファイルの各レコードの末尾にAge5の値を付与して出力する。
2.変数InpDataの2桁目から4桁目の値が変数Ageと等しいレコードのレコード数(変数Cnt)をカウントする。
すべてのレコードについて処理が終了したら「該当レコード数/総レコード数」を画面に表示する。
VBはスレ違いでしたらすいません。
スペースが文字化けしてしまうので-で代用しています。
Dim-;Inpdata,OutData-As-String
Dim-;RecordCnt-As-;Integer
Using-sr-As-;New-StreamReader(Text1,Shift_JIS),_
-sw-As-New-StreamWriter(Text2,Shift_JIS)
-Do-While ;Sr.Peek>=0
---RecordCnt=RecordCnt ;+ ;1
---OutData=;InpData
---sw.WriteLine(OutData)
Loop
上記コードについて以下のように処理するようコードを変更もしくは追加しなさい。
(変更or追加するところだけ教えてください)
1.変数InpDataの2桁目から4桁目の値に従い、文字属性の変数Age5に次の値を代入。
(000-004のとき01、005-009のとき02、010-014のとき03、015-019のとき04)
また出力ファイルの各レコードの末尾にAge5の値を付与して出力する。
2.変数InpDataの2桁目から4桁目の値が変数Ageと等しいレコードのレコード数(変数Cnt)をカウントする。
すべてのレコードについて処理が終了したら「該当レコード数/総レコード数」を画面に表示する。
779デフォルトの名無しさん
2013/04/22(月) 08:27:19.55 Dim Inpdata, OutData As String
Dim RecordCnt As Integer
Using sr As New StreamReader(Text1, Shift_JIS), sw As New StreamWriter(Text2, Shift_JIS)
Do While sr.Peek >= 0
RecordCnt = RecordCnt + 1
OutData = InpData
sw.WriteLine(OutData)
Loop
Dim RecordCnt As Integer
Using sr As New StreamReader(Text1, Shift_JIS), sw As New StreamWriter(Text2, Shift_JIS)
Do While sr.Peek >= 0
RecordCnt = RecordCnt + 1
OutData = InpData
sw.WriteLine(OutData)
Loop
780デフォルトの名無しさん
2013/04/22(月) 08:47:25.25 LINQ関係ないな
あとinpdataが空っぽのままだ
あとinpdataが空っぽのままだ
781デフォルトの名無しさん
2013/05/09(木) 23:35:28.70782デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN linqは結局流行らなかったね
783デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN784デフォルトの名無しさん
2013/09/04(水) 20:35:45.77 where節とかで何個溜まったらそこまでって出来ないのかな?
785デフォルトの名無しさん
2013/09/04(水) 21:03:51.88 ちょっと意味が分からんが
Takeのことか?
Takeのことか?
786デフォルトの名無しさん
2013/09/04(水) 21:05:58.53 TakeWhile使え
787デフォルトの名無しさん
2013/09/05(木) 22:02:37.88 ありがとうござます
そんな関数もあるのですね
enumerableのメンバ関数を勉強してみます
そんな関数もあるのですね
enumerableのメンバ関数を勉強してみます
788デフォルトの名無しさん
2013/11/15(金) 09:11:08.42 専門スレあったのか。遅すぎてみんな使わなくなったのかな?
789デフォルトの名無しさん
2013/11/15(金) 09:55:37.40 こんなところまで出張して煽りに来ないでいいからw
790デフォルトの名無しさん
2013/11/15(金) 10:01:34.65 1.保守性が低い
2.単体テストが困難
3.内部処理を理解してないと簡単に遅いコードになる
以下の理由から業務ではあまり好まれていないようです。
2.単体テストが困難
3.内部処理を理解してないと簡単に遅いコードになる
以下の理由から業務ではあまり好まれていないようです。
791デフォルトの名無しさん
2013/11/15(金) 10:05:58.44 COBOL出身者の多いところでは好まれるんじゃね?
792デフォルトの名無しさん
2013/11/15(金) 10:12:06.99 LINQは横糸の技術、技術横断的な仕組みだから
理解されづらいというのはあるのかな
理解されづらいというのはあるのかな
793デフォルトの名無しさん
2013/11/15(金) 10:15:57.73794デフォルトの名無しさん
2013/11/16(土) 01:12:17.77 Smalltalkで昔から出来てたことを今更か。
query := QueryForTables fromTables: { table1. table2 }.
timeTable := query do:
[ :method :row1 :row2 |
method
where:[ row1 interselected: row2 time ]
select:[ TimeSpan timeSpanName: row1 name time: row2 time ].
].
timeTable do:
[ :each |
Transcript show: each asString;cr.
].
query := QueryForTables fromTables: { table1. table2 }.
timeTable := query do:
[ :method :row1 :row2 |
method
where:[ row1 interselected: row2 time ]
select:[ TimeSpan timeSpanName: row1 name time: row2 time ].
].
timeTable do:
[ :each |
Transcript show: each asString;cr.
].
795デフォルトの名無しさん
2013/11/16(土) 07:35:26.52 だからsmalltalkは普及しかなったといえる。
796デフォルトの名無しさん
2013/11/18(月) 12:36:12.52 本山
柿谷
小笠原
中田
高橋
柿谷
小笠原
中田
高橋
797デフォルトの名無しさん
2013/11/19(火) 19:29:10.58 画像処理ってループとか抽出とか多いけどLINQとの相性はどうですか?
798デフォルトの名無しさん
2013/11/20(水) 18:13:13.38 しりません
尻屋
尻屋
799デフォルトの名無しさん
2013/11/20(水) 20:19:50.38 ダメダメ
800ぼえ
2013/11/20(水) 20:25:52.01 12月の渋谷でやすなりが暴れてもとめません。おさわりハグ必至yasunari_syyh
801さき
2013/12/05(木) 07:33:52.40 浮気もののドエムやすなり。ゆさに首しめてもらいな
802デフォルトの名無しさん
2013/12/17(火) 12:20:52.45 LINQ達人の皆さまに教えをいただきにまいりました。
List<DateTime>の要素の中に異なる月の日付が混入しているかどうか(年が同じなのは所与)を判定するのにいい方法はありませんでしょうか?
とりあえずは
Min().Month!=Max().Month
でいけるようなのですが要素の数が増えるとMinやMaxをつかうのはどうかなと思っています。
List<DateTime>の要素の中に異なる月の日付が混入しているかどうか(年が同じなのは所与)を判定するのにいい方法はありませんでしょうか?
とりあえずは
Min().Month!=Max().Month
でいけるようなのですが要素の数が増えるとMinやMaxをつかうのはどうかなと思っています。
803デフォルトの名無しさん
2013/12/17(火) 12:46:15.89 list.Any(_ => _.Month != list[0].Month)
listが空のケースがあるなら事前に弾いとく
listが空のケースがあるなら事前に弾いとく
804デフォルトの名無しさん
2013/12/17(火) 12:51:54.00 >>803
それ先頭が違う月だったらどうするのさ
それ先頭が違う月だったらどうするのさ
805デフォルトの名無しさん
2013/12/17(火) 12:53:09.61 ああ、違うのがあるかどうかだけでどれか特定しなくてもいいのか
806デフォルトの名無しさん
2013/12/17(火) 13:00:42.01807デフォルトの名無しさん
2013/12/17(火) 23:45:08.01 Linq超便利なのに実際の開発現場では直接DB参照できなくて使えない罠
しかし今時4.0使っときながらEFあるのにO/RMも使わずに汎用性のない独自マッピングをXMLに書くとか今の現場糞すぎるわwww
しかし今時4.0使っときながらEFあるのにO/RMも使わずに汎用性のない独自マッピングをXMLに書くとか今の現場糞すぎるわwww
808デフォルトの名無しさん
2013/12/18(水) 08:49:03.89 O/Rなにそれおいしいの?という現場もあるからまだましだよ
809デフォルトの名無しさん
2013/12/19(木) 09:57:31.91 LINQ to Entityは大して絶対的なもんじゃないだろ
独自XMLマッピングはないけど
独自XMLマッピングはないけど
810デフォルトの名無しさん
2013/12/19(木) 10:16:46.64 見事に使われなくなった悲しい技術。
811デフォルトの名無しさん
2013/12/19(木) 11:16:39.10 Entity FramworkをLinqなしで使うとなると、
Query Builderにご登場願わなくてはならないが、
正直あれはない・・・;
Query Builderにご登場願わなくてはならないが、
正直あれはない・・・;
812デフォルトの名無しさん
2013/12/19(木) 12:06:53.80813デフォルトの名無しさん
2013/12/19(木) 12:07:24.58 ×時期
○次期
○次期
814デフォルトの名無しさん
2013/12/19(木) 13:41:08.86 そもそも汎用性のない独自マッピングとか存在価値がわからない
DB覗いてテーブルとデータ把握しないといけないのにラップする意味ないだろ
DB覗いてテーブルとデータ把握しないといけないのにラップする意味ないだろ
815デフォルトの名無しさん
2013/12/19(木) 15:47:37.88 クエリ構文が要らんというなら分かる
816デフォルトの名無しさん
2013/12/19(木) 17:54:32.34 拡張メソッドがあればクエリ構文は不要。
そう思っていた時期が私にもありました。
そう思っていた時期が私にもありました。
817デフォルトの名無しさん
2013/12/19(木) 18:10:53.57 クエリ構文はキモい
拡張メソッドは正義
拡張メソッドは正義
818デフォルトの名無しさん
2013/12/19(木) 20:29:32.26 じゃあお前にクエリ構文で書かれたjoinを拡張メソッドに書き直す仕事をやろう
819デフォルトの名無しさん
2013/12/20(金) 15:34:34.73 クエリ構文もメソッド構文もキモくないけど
混ぜ書きがキモい
混ぜ書きがキモい
820デフォルトの名無しさん
2013/12/24(火) 19:27:31.94 しかしクエリ構文で何故selectを最初にしなかったんだろ
SQLと一緒にすればいいのに
SQLと一緒にすればいいのに
821デフォルトの名無しさん
2013/12/24(火) 19:29:25.67 インテリセンスが利かないから
822デフォルトの名無しさん
2013/12/27(金) 06:53:18.24 代々木
栃木
横浜湖
岐阜
兵庫
栃木
横浜湖
岐阜
兵庫
823デフォルトの名無しさん
2013/12/31(火) 20:57:12.59 もしかしてTableAdapterって製品版誘導のためのブラックボックスですか?
824デフォルトの名無しさん
2014/01/05(日) 07:29:28.09 にほんごでOK
825デフォルトの名無しさん
2014/01/07(火) 00:27:37.75 Entity FrameworkをSQLiteで使い始めたんだが、
カラムが文字列とか数値とか5個くらいのテーブルにテスト用として1行入れたデータを1行取り出す処理に1.4秒もかかるんだが・・・
どうなってるんだ?
Table per hierarchyの継承を使っているせいか?
var query = context.Superclass.OfType<Subclass>().Where( obj => obj.Id == 1);
foreach (Superclass obj in query)
{
Console.WriteLine(obj.Id);
}
Idプロパティはエンティティキー。
実行しなくてもデータがあれば、明らかに結果は「1」なのだが、これで1.4秒もかかってしまう。
ちなみにSubclassの判定には、あるBLOBのカラムがNULLでなければSubclassの行。
もちろん、
SELECT * FROM Superclasses WHERE Id = 1;
というSQLをsqlite3.exeというコマンドラインインターフェイスで投げると0.1秒もかからない。
実際に行いたい処理はこんなもんじゃなくて別のプロパティで検索してリレーションをたどるのだが、どれだけ条件を削っても遅くて・・・
カラムが文字列とか数値とか5個くらいのテーブルにテスト用として1行入れたデータを1行取り出す処理に1.4秒もかかるんだが・・・
どうなってるんだ?
Table per hierarchyの継承を使っているせいか?
var query = context.Superclass.OfType<Subclass>().Where( obj => obj.Id == 1);
foreach (Superclass obj in query)
{
Console.WriteLine(obj.Id);
}
Idプロパティはエンティティキー。
実行しなくてもデータがあれば、明らかに結果は「1」なのだが、これで1.4秒もかかってしまう。
ちなみにSubclassの判定には、あるBLOBのカラムがNULLでなければSubclassの行。
もちろん、
SELECT * FROM Superclasses WHERE Id = 1;
というSQLをsqlite3.exeというコマンドラインインターフェイスで投げると0.1秒もかからない。
実際に行いたい処理はこんなもんじゃなくて別のプロパティで検索してリレーションをたどるのだが、どれだけ条件を削っても遅くて・・・
826825
2014/01/07(火) 01:20:00.16 データベースファイルを作り直したところ、35ミリ秒程度に改善しました。
大変お騒がせしました。
大変お騒がせしました。
827デフォルトの名無しさん
2014/01/08(水) 08:49:14.97 EnumerableRowCollection<DataRow> query =
from row in contacts.AsEnumerable()
where IsContainArr(row[0].ToString(), fig)
select row;
の
bool IsContainArr(string s, string[] arr)
{
foreach (var a in arr)
{
if (!s.Contains(a)) return false;
}
return true;
}
って、メソッドで用意されてないんかな
from row in contacts.AsEnumerable()
where IsContainArr(row[0].ToString(), fig)
select row;
の
bool IsContainArr(string s, string[] arr)
{
foreach (var a in arr)
{
if (!s.Contains(a)) return false;
}
return true;
}
って、メソッドで用意されてないんかな
828デフォルトの名無しさん
2014/01/08(水) 22:37:35.19 Any All
829デフォルトの名無しさん
2014/01/12(日) 08:32:51.26 AND 演算子を LINQ サブクエリに結果が表示されますなし
http://ja.softuses.com/98912
http://ja.softuses.com/98912
830デフォルトの名無しさん
2014/01/13(月) 21:22:32.83 ORとか多次元配列は拡張メソッドを使うしかないな
831デフォルトの名無しさん
2014/02/25(火) 07:18:07.32 AndとOrって全部AndAlsoとOrElseに書き換えて大丈夫なの?
あとWhereで「A == B」と「A Equals B」の違いってなんなの?
あとWhereで「A == B」と「A Equals B」の違いってなんなの?
832デフォルトの名無しさん
2014/02/25(火) 21:01:27.85 大丈夫じゃない可能性はあるが
VBのAndとOrはビット演算以外ではもはや不要
置換してしまえ
VBのAndとOrはビット演算以外ではもはや不要
置換してしまえ
833デフォルトの名無しさん
2014/02/25(火) 21:22:16.17 値型の配列はIEnumerable<object>にキャストできない。
かといってIEnumerableだとLINQに流し込めなくてめんどくさい…。
どうしようかと悩んだ末にこうなった。
var obj = new[] { 1, 2, 3 };
var q = from object x in (IEnumerable)obj select x.ToString();
型指定してやればいけるんだね。
かといってIEnumerableだとLINQに流し込めなくてめんどくさい…。
どうしようかと悩んだ末にこうなった。
var obj = new[] { 1, 2, 3 };
var q = from object x in (IEnumerable)obj select x.ToString();
型指定してやればいけるんだね。
834デフォルトの名無しさん
2014/02/25(火) 21:27:32.63 >>831
ここはLINQスレなんでできればVB.NETのスレで聞いたほうが確実な回答を得られると思うよ。
And/Orのあとに副作用(グローバルな変数やDBの書き換えetc)のある関数の呼び出しをしていないのなら全置換しちまえ
Equalsの件はdobonなサイトで調べるがよろしいかと。
http://dobon.net/vb/dotnet/beginner/equality.html
ここはLINQスレなんでできればVB.NETのスレで聞いたほうが確実な回答を得られると思うよ。
And/Orのあとに副作用(グローバルな変数やDBの書き換えetc)のある関数の呼び出しをしていないのなら全置換しちまえ
Equalsの件はdobonなサイトで調べるがよろしいかと。
http://dobon.net/vb/dotnet/beginner/equality.html
835デフォルトの名無しさん
2014/02/25(火) 21:44:04.83 >>833
obj.Cast<object>()とかでいいんじゃね?
obj.Cast<object>()とかでいいんじゃね?
836831
2014/02/25(火) 22:37:27.65837デフォルトの名無しさん
2014/02/26(水) 03:55:31.47 >>835
IEnumerableにCastあったのか。
無いと思い込んでたよ…。
クエリ式でキャストできるのも知らなかったから、全くの無駄足ではなかったけど凹む。
var obj = (object)new[] { 1, 2, 3 };
var q = from int x in (IEnumerable)obj select x.ToString();
IEnumerableにCastあったのか。
無いと思い込んでたよ…。
クエリ式でキャストできるのも知らなかったから、全くの無駄足ではなかったけど凹む。
var obj = (object)new[] { 1, 2, 3 };
var q = from int x in (IEnumerable)obj select x.ToString();
838デフォルトの名無しさん
2014/02/26(水) 11:22:47.19 LINQ to EntityだとOrとOrElseとかは等価なんだろうな
839デフォルトの名無しさん
2014/02/27(木) 21:15:09.47 ■データセットAの内容
c1 c2 c3 c4
01 01 01 AA
01 01 02 BB
01 02 02 CC
02 02 02 DD
■データセットBの内容
c1 c2 c3 c4
01 01 02 sss
01 02 02 ttt
上のようなデータセットA・Bを列c1・c2・c3で結びつけた場合に
データセットAのみに存在するデータを取得するには
どのようなLINQを記述すればよいのでしょうか?
つまり下の結果を得たいのですが、お手上げ状態です…
■結果
c1 c2 c3 c4
01 01 01 AA
02 02 02 DD
c1 c2 c3 c4
01 01 01 AA
01 01 02 BB
01 02 02 CC
02 02 02 DD
■データセットBの内容
c1 c2 c3 c4
01 01 02 sss
01 02 02 ttt
上のようなデータセットA・Bを列c1・c2・c3で結びつけた場合に
データセットAのみに存在するデータを取得するには
どのようなLINQを記述すればよいのでしょうか?
つまり下の結果を得たいのですが、お手上げ状態です…
■結果
c1 c2 c3 c4
01 01 01 AA
02 02 02 DD
840デフォルトの名無しさん
2014/02/27(木) 22:04:56.98 >>839
ExceptとIEqualityComparer
ExceptとIEqualityComparer
841デフォルトの名無しさん
2014/02/28(金) 07:34:04.60 >>839
手元に開発環境がないので想像で書いてみた。
こんなんで動くかどうか?
DataSetA.AsEnumerable().Where(p => !DataSetB.AsEnumerable().Any(q => p["c1"] == q["c1"] && p["c2"] == q["c2"] && p["c3"] == q["c3"]))
手元に開発環境がないので想像で書いてみた。
こんなんで動くかどうか?
DataSetA.AsEnumerable().Where(p => !DataSetB.AsEnumerable().Any(q => p["c1"] == q["c1"] && p["c2"] == q["c2"] && p["c3"] == q["c3"]))
842デフォルトの名無しさん
2014/02/28(金) 09:32:52.42 LINQとは関係ないけど、データが入ってるのはDataSetじゃなくてDataTableじゃね?
843デフォルトの名無しさん
2014/03/02(日) 01:29:42.61 VS2010 ExpressでもLINQって使うこと出来ますか?
844デフォルトの名無しさん
2014/03/02(日) 10:37:45.85 使える
845デフォルトの名無しさん
2014/03/03(月) 04:06:49.30 >>841
こんな見ただけでダメそうなLINQはそうみない
こんな見ただけでダメそうなLINQはそうみない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】Jリーグ観客動員が歴代最多を更新 初の「1300万人超え」達成…平均入場者数も史上最高に [尺アジ★]
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 ★3 [少考さん★]
- 【芸能】粗品、日本テレビに苦言 客のレベルが「かなり低い。あいつら分かってない」「拍手したいだけやねん」 [冬月記者★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★4 [Hitzeschleier★]
- 【速報】嵐、『紅白歌合戦』出場しない意向 NHKからオファーも首を縦に振らず… 歌唱パフォーマンスのブランクがネック [冬月記者★]
- 山里亮太、フィリピンに子ども食堂を建設 「偽善者」「日本の子どもを助けるべき」の声があっても活動を続ける理由 [Anonymous★]
- 【DAZN/ABEMA】ブンデスリーガ・DFBポカール★7
- 【U-NEXT】プレミアリーグ総合 ★45
- 【U-NEXT】プレミアリーグ総合 ★44
- こいせん 全レス転載禁止
- とらせん IP付き
- 【D専】
- 安倍晋三の学歴詐称は許されたのに、伊藤市長は許されなかった理由って何? [603416639]
- 【朗報】イーロン・マスク「AIとロボットで誰も働かなくて良くなる。全員ニートで金銭も税金もないパラダイスみてぇな国を作りてえ」 [347751896]
- 冷え性すぎて寝れない😭助けて!
- 【悲報】米山隆一と室井佑月、ガチで離婚しそうwwwwwwwwwwwwwwwwwwww [802034645]
- ( ・᷄ὢ・᷅ )今はフリーです
- 女子中学生、男子に初めてクリをイジられてすぐにイッてしまうwwwwwwwwwwwwwwwwwwww
