VisualStudio2008より追加された便利で強力な機能
統合言語クエリ (LINQ : Language Integrated Query)
ちょっと使ってみると、意外と難しいし、テクニック的にも奥が深いものです。
関数型言語にしかないような機能ラムダ式(Lambda式)などはオブジェクト指向とは一味違う機能です。
DataBaseの操作にも、Xmlの操作にも、さらにもっと単純な配列なコンテナにさえ機能する
言語共通・高汎用な統合言語クエリを皆で一緒にマターリ勉強しましょう。
質問、便利なマイテクニックの発表、いろいろやっちゃってください。
【VB.NET】LINQ友の会【C#, C♯, C#】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2008/02/09(土) 23:51:34671デフォルトの名無しさん
2011/07/20(水) 19:13:40.41 >>668
http://www.atmarkit.co.jp/fdotnet/chushin/roadtolinq_01/roadtolinq_01_02.html
↑これのFigure 9。
x はラムダ式(匿名関数)の引数。
http://www.atmarkit.co.jp/fdotnet/chushin/roadtolinq_01/roadtolinq_01_02.html
↑これのFigure 9。
x はラムダ式(匿名関数)の引数。
672デフォルトの名無しさん
2011/08/03(水) 06:46:39.84 >>670
Selectの有無でqの戻り値が変わることもあるよ
Selectの有無でqの戻り値が変わることもあるよ
673デフォルトの名無しさん
2011/08/03(水) 11:18:41.76 え?まじで?どういう場合に?
674デフォルトの名無しさん
2011/08/03(水) 19:11:17.24 戻り値は変わらないのでは?
しいてそういうケースを考えるなら
ただの配列に.Select(x => x)だけを足したりなどをすると、
得られる結果は一見同じだけど
型が厳密なIEnumerable<T>に変わるのと、
当然Selectを通るのでパフォーマンスは落ちる。
ただ、今回の場合は前段階にWhereが挟まれているので、何も変わらないね。
しいてそういうケースを考えるなら
ただの配列に.Select(x => x)だけを足したりなどをすると、
得られる結果は一見同じだけど
型が厳密なIEnumerable<T>に変わるのと、
当然Selectを通るのでパフォーマンスは落ちる。
ただ、今回の場合は前段階にWhereが挟まれているので、何も変わらないね。
675デフォルトの名無しさん
2011/08/03(水) 20:44:38.31 WhereのイテレータがSelectのイテレータに変わるから全く何も変わらないわけでもない
全く意味のない違いだけど
全く意味のない違いだけど
676デフォルトの名無しさん
2011/08/03(水) 21:40:50.63 まあ、ReferenceEqualsでもしない限りは。
普通しないと思うし。
普通しないと思うし。
677デフォルトの名無しさん
2011/08/08(月) 01:02:05.32 皆型までみないのか。
678デフォルトの名無しさん
2011/08/08(月) 01:26:27.26 LINQはインターフェイス中心だしね。
679デフォルトの名無しさん
2011/08/08(月) 19:29:01.07 DataTableをSELECTして匿名型になると元に戻すのが大変なんよー
680デフォルトの名無しさん
2011/08/14(日) 00:44:37.92 先生早く来ないかな
681デフォルトの名無しさん
2011/09/04(日) 02:37:18.36 >>674
> ただの配列に.Select(x => x)だけを足したりなどをすると、
> 得られる結果は一見同じだけど
> 型が厳密なIEnumerable<T>に変わるのと
厳密なってどういう意味だ?
IEnumerable<T>の派生型である配列からIEnumerable<T>へと抽象化されるんだが…
> ただの配列に.Select(x => x)だけを足したりなどをすると、
> 得られる結果は一見同じだけど
> 型が厳密なIEnumerable<T>に変わるのと
厳密なってどういう意味だ?
IEnumerable<T>の派生型である配列からIEnumerable<T>へと抽象化されるんだが…
682デフォルトの名無しさん
2011/09/04(日) 02:50:26.04 ああ、すまん、>>675って意味か…
683デフォルトの名無しさん
2011/09/06(火) 13:26:26.01 現在 asp.netで開発しております。
初心者です。
下記のようなXMLファイルを八百屋のIDを条件に
果物、野菜、缶詰の在庫の判定を行いたいのですが、
うまくいきません。
ご教示ください。
XMLの読み込みはLinqを使用しています。
初心者です。
下記のようなXMLファイルを八百屋のIDを条件に
果物、野菜、缶詰の在庫の判定を行いたいのですが、
うまくいきません。
ご教示ください。
XMLの読み込みはLinqを使用しています。
684デフォルトの名無しさん
2011/09/06(火) 13:29:04.49 Dim xmldoc As XElement = XElement.Load("C:\test.xml")
Dim query = From c In xmldoc.Descendants("八百屋") select c (ここからの条件が解りません)
For Each result In query
Dim Apple As String = result.Element("リンゴ").Attribute("在庫").Value
Dim Mikan As String = result.Element("みかん").Attribute("在庫").Value
上記のような感じで属性を取得していきます。
Next
宜しくお願いします。
Dim query = From c In xmldoc.Descendants("八百屋") select c (ここからの条件が解りません)
For Each result In query
Dim Apple As String = result.Element("リンゴ").Attribute("在庫").Value
Dim Mikan As String = result.Element("みかん").Attribute("在庫").Value
上記のような感じで属性を取得していきます。
Next
宜しくお願いします。
685デフォルトの名無しさん
2011/09/06(火) 13:32:18.03 <設定内容>
<八百屋 ID="001">
<果物>
<リンゴ 在庫="YES"/>
<みかん 在庫="YES"/>
<メロン 在庫="NO"/>
</果物>
<野菜>
<大根 在庫="NO">
<白菜 在庫="YES">
</野菜>
<缶詰>
<桃 在庫="NO">
<みかん 在庫="YES">
</缶詰>
</八百屋>
</設定内容>
<八百屋 ID="001">
<果物>
<リンゴ 在庫="YES"/>
<みかん 在庫="YES"/>
<メロン 在庫="NO"/>
</果物>
<野菜>
<大根 在庫="NO">
<白菜 在庫="YES">
</野菜>
<缶詰>
<桃 在庫="NO">
<みかん 在庫="YES">
</缶詰>
</八百屋>
</設定内容>
686デフォルトの名無しさん
2011/09/06(火) 20:24:12.34 こっちが聞きたいわ
「八百屋のIDを条件に」「在庫の判定」の具体的な条件は?
「八百屋のIDを条件に」「在庫の判定」の具体的な条件は?
687デフォルトの名無しさん
2011/09/06(火) 21:03:19.46 ちょっとやりたい事が伝わらない…
こんなこと?
Import System.Xml.XPath
Dim qry = From c In xmldoc.XPathSelectElements("設定内容/八百屋")
Where c.Attribute("ID").Value = "001"
Select c
※ qryは八百屋ノードの列挙データ
てかたぶんやりたいことはLINQじゃなくて、XPathの方がすっきりするような気がする…
こんなこと?
Import System.Xml.XPath
Dim qry = From c In xmldoc.XPathSelectElements("設定内容/八百屋")
Where c.Attribute("ID").Value = "001"
Select c
※ qryは八百屋ノードの列挙データ
てかたぶんやりたいことはLINQじゃなくて、XPathの方がすっきりするような気がする…
688デフォルトの名無しさん
2011/09/06(火) 21:59:22.20 from item in xmldoc.Descendants("八百屋")
let 果物 = item.Element("果物")
let 野菜 = item.Element("野菜")
let 缶詰 = item.Element("缶詰")
select new
{
HasApple = 果物.Element("リンゴ").Attribute("在庫").Value == "YES",
HasPeach = 缶詰.Element("桃").Attribute("在庫").Value == "YES"
}
みたいな感じでしょうか?VBも多分同じ感じなはず。
let 果物 = item.Element("果物")
let 野菜 = item.Element("野菜")
let 缶詰 = item.Element("缶詰")
select new
{
HasApple = 果物.Element("リンゴ").Attribute("在庫").Value == "YES",
HasPeach = 缶詰.Element("桃").Attribute("在庫").Value == "YES"
}
みたいな感じでしょうか?VBも多分同じ感じなはず。
689デフォルトの名無しさん
2011/09/08(木) 17:12:16.76 親子構造テーブル検索をしたいのですが、一発で取得する方法はありますか?
スキーマがID,親IDとなっていて、
A,null-+-A1,A
+-A2,A-+-A21,A2
B,null-+-B1,B
+-B2,B
+-B3,B-+-B31,B3-+-B311,B31
データがこのようになっていた場合、ID:Aで検索をかけてA,A1,A2,A21を取得したいです
ルートレコード(A)は取得できなくても構いません
また、A○やA○○と連番風になっていますが、実際はGUIDで、ID文字列中に親子を類推できる情報は一切ありません
よろしくお願いします
スキーマがID,親IDとなっていて、
A,null-+-A1,A
+-A2,A-+-A21,A2
B,null-+-B1,B
+-B2,B
+-B3,B-+-B31,B3-+-B311,B31
データがこのようになっていた場合、ID:Aで検索をかけてA,A1,A2,A21を取得したいです
ルートレコード(A)は取得できなくても構いません
また、A○やA○○と連番風になっていますが、実際はGUIDで、ID文字列中に親子を類推できる情報は一切ありません
よろしくお願いします
690デフォルトの名無しさん
2011/09/08(木) 21:34:54.14 分かりにくいし、データ構造の指定もないから逆に答えずらいわ…
private class A
{
public string ID { get; set; }
public string Parent { get; set; }
}
var l = new List<A>();
l.Add(new A() { ID = "A", Parent = null });
l.Add(new A() { ID = "A1", Parent = "A" });
l.Add(new A() { ID = "A2", Parent = "A" });
l.Add(new A() { ID = "A21", Parent = "A2" });
l.Add(new A() { ID = "B", Parent = null });
l.Add(new A() { ID = "B1", Parent = "B" });
l.Add(new A() { ID = "B2", Parent = "B" });
l.Add(new A() { ID = "B3", Parent = "B" });
l.Add(new A() { ID = "B31", Parent = "B3" });
l.Add(new A() { ID = "B311", Parent = "B31" });
string sel = "A";
var ret = new List<A>();
l.ForEach(x => { if (x.Parent == sel || ret.Any(y => y.ID == x.Parent)) ret.Add(x); });
private class A
{
public string ID { get; set; }
public string Parent { get; set; }
}
var l = new List<A>();
l.Add(new A() { ID = "A", Parent = null });
l.Add(new A() { ID = "A1", Parent = "A" });
l.Add(new A() { ID = "A2", Parent = "A" });
l.Add(new A() { ID = "A21", Parent = "A2" });
l.Add(new A() { ID = "B", Parent = null });
l.Add(new A() { ID = "B1", Parent = "B" });
l.Add(new A() { ID = "B2", Parent = "B" });
l.Add(new A() { ID = "B3", Parent = "B" });
l.Add(new A() { ID = "B31", Parent = "B3" });
l.Add(new A() { ID = "B311", Parent = "B31" });
string sel = "A";
var ret = new List<A>();
l.ForEach(x => { if (x.Parent == sel || ret.Any(y => y.ID == x.Parent)) ret.Add(x); });
692デフォルトの名無しさん
2011/09/10(土) 03:26:25.43 学校の宿題であることを願うばかりだ・・・
693デフォルトの名無しさん
2011/09/10(土) 16:31:03.33 テーブルをNodes (ID uniqueidentifier, ParentID uniqueidentifier)とすれば、SQLでもEntitiesでも
class Node {
uniqueidentifier ID { get; set; }
Node Node { get; set; } // ParentIDのリレーション (i.e. 親Node)
}
こんな感じのクラスになるはずだから、何も悩む必要はないと思うが?
class Node {
uniqueidentifier ID { get; set; }
Node Node { get; set; } // ParentIDのリレーション (i.e. 親Node)
}
こんな感じのクラスになるはずだから、何も悩む必要はないと思うが?
694デフォルトの名無しさん
2011/09/18(日) 10:53:41.53 int[] data;
省略
init max = data.Where(e => 条件).Max();
このとき、条件に一致するのがなかったときシーケンスが空っぽだよって例外が出るよね
だからといって
var seq = data.Where(e => 条件);
if(seq.Count > 0) {
max = seq.Max
}
ってしようとするとintと比較できないってコンパイルエラー出るし、
結構不便だよね
省略
init max = data.Where(e => 条件).Max();
このとき、条件に一致するのがなかったときシーケンスが空っぽだよって例外が出るよね
だからといって
var seq = data.Where(e => 条件);
if(seq.Count > 0) {
max = seq.Max
}
ってしようとするとintと比較できないってコンパイルエラー出るし、
結構不便だよね
695デフォルトの名無しさん
2011/09/18(日) 13:26:40.48 seq.Count()だろ
でも一つ含まれてればいいんだから if (seq.Any()) の方がいい
一行で書くなら
int? max = data.Where(e=>条件).Select(e=>(int?)e).DefaultIfEmpty().Max();
かな
でも一つ含まれてればいいんだから if (seq.Any()) の方がいい
一行で書くなら
int? max = data.Where(e=>条件).Select(e=>(int?)e).DefaultIfEmpty().Max();
かな
696デフォルトの名無しさん
2011/09/22(木) 05:59:38.55 >>695
了解
了解
697 忍法帖【Lv=8,xxxP】
2011/11/10(木) 08:11:23.35 a
698デフォルトの名無しさん
2012/01/19(木) 20:38:38.84 linqでcsvファイルを二次元配列に読み込むこと出来ますか?
699デフォルトの名無しさん
2012/01/19(木) 23:41:37.84 出来ますん
700デフォルトの名無しさん
2012/01/19(木) 23:45:40.19 LINQ使うなら二次元配列はすごく相性悪いから捨てろ(そうでなくても多次元配列は終わってるから使うな)
配列の配列を使うことにして、エスケープとか考えないなら
string[][] csv = File.ReadLines("hoge.csv").Select(line=>line.Split(",").ToArray()).ToArray();
配列の配列を使うことにして、エスケープとか考えないなら
string[][] csv = File.ReadLines("hoge.csv").Select(line=>line.Split(",").ToArray()).ToArray();
701デフォルトの名無しさん
2012/01/20(金) 05:02:02.84 二次元配列でなくて、CSVの1レコード(1行)に当たるクラスを作って、
そのクラスの配列ないしList<T>として読み込むなら、LINQ to CSV使えば一行で出来る
var hhh = new CsvContext().Read<作ったクラス名>(str, new CsvFileDescription { TextEncoding = Encoding.UTF8 }).Distinct().OrderBy(x => x.ID).ToArray;
みたいな感じで (上は、念のため重複覗いてID順に並べたりしてる)
そのクラスの配列ないしList<T>として読み込むなら、LINQ to CSV使えば一行で出来る
var hhh = new CsvContext().Read<作ったクラス名>(str, new CsvFileDescription { TextEncoding = Encoding.UTF8 }).Distinct().OrderBy(x => x.ID).ToArray;
みたいな感じで (上は、念のため重複覗いてID順に並べたりしてる)
702デフォルトの名無しさん
2012/01/20(金) 05:04:41.12 ↑ ちなみに str は読み込むCSVのファイル名を入れた変数
703デフォルトの名無しさん
2012/01/20(金) 08:08:43.31704デフォルトの名無しさん
2012/01/27(金) 14:02:24.01 質問なんですが、下のプログラムにてlinqでスマートに最後の行の状態にしたいんですが、
どういった方法がありますか?
var collection = new[] { 1, 2, 3 }; //これを
collection = ?
//var collection = new[] { 1, 2, 2, 3, 3, 3 }; //こうしたい
どういった方法がありますか?
var collection = new[] { 1, 2, 3 }; //これを
collection = ?
//var collection = new[] { 1, 2, 2, 3, 3, 3 }; //こうしたい
705704
2012/01/27(金) 14:15:34.18 すみません自己解決しました
var result = collection.SelectMany(i => Enumerable.Repeat(i, i));
var result = collection.SelectMany(i => Enumerable.Repeat(i, i));
706デフォルトの名無しさん
2012/02/09(木) 12:15:10.64 LINQでループ処理
何得ですね。
Enumerable.Range(0,length).All(i =>
{
dosomething(i);
return true;
});
何得ですね。
Enumerable.Range(0,length).All(i =>
{
dosomething(i);
return true;
});
707デフォルトの名無しさん
2012/02/13(月) 18:29:22.29 単なるループなら無駄だけど、N個の「なにか」が欲しいときは便利だね。
[LINQ]
var items = Enumerable.Range(0, N)
.Select(i => new Foo(i))
.ToArray();
[for]
var list = new List<Foo>();
for(var i=0;i<N;i++)
items.Add(new Foo(i));
var items = list.ToArray();
[LINQ]
var items = Enumerable.Range(0, N)
.Select(i => new Foo(i))
.ToArray();
[for]
var list = new List<Foo>();
for(var i=0;i<N;i++)
items.Add(new Foo(i));
var items = list.ToArray();
708デフォルトの名無しさん
2012/02/24(金) 22:06:01.26709デフォルトの名無しさん
2012/02/25(土) 02:33:39.10 LISPとかもいましたし
710デフォルトの名無しさん
2012/02/25(土) 02:42:37.61 >>708
これは酷い
これは酷い
711デフォルトの名無しさん
2012/02/25(土) 08:30:57.04 >グループ名のLinQは"Love in 九州"からの造語であり、またアイドル活動を通じて様々なものを"リンク"するという意味も込められている。
それならLinKにしろよ。。。
それならLinKにしろよ。。。
712デフォルトの名無しさん
2012/02/25(土) 08:58:56.23 九州の意味でQを使うのは、ローカルSFコンベンションの「Qコン」とか、
わりと古くから歴史がある(あの米澤さんも参加したことがある大会、のはず)。
わりと古くから歴史がある(あの米澤さんも参加したことがある大会、のはず)。
713デフォルトの名無しさん
2012/02/25(土) 13:12:39.82 LINQが考えなしのアイドル?だかに汚された
714デフォルトの名無しさん
2012/02/25(土) 14:34:17.58715デフォルトの名無しさん
2012/02/25(土) 14:45:19.45 最初は良スレだったのにネタが尽きたか
716デフォルトの名無しさん
2012/02/26(日) 08:35:59.17 昔秋葉原の楽器屋にORACLE Masterの参考書が売ってて
なんでかなと思ったらSOLってソフトの本と間違えてたみたい。
NoSQL系でLINQネイティヴ対応のが出れば流行るかねー
MS以外にポートしないとダメか
なんでかなと思ったらSOLってソフトの本と間違えてたみたい。
NoSQL系でLINQネイティヴ対応のが出れば流行るかねー
MS以外にポートしないとダメか
717デフォルトの名無しさん
2012/02/29(水) 00:20:54.78 【消しゴム】MONOを使ってみるスレ4【じゃない】
http://toro.2ch.net/test/read.cgi/tech/1329023778/
http://toro.2ch.net/test/read.cgi/tech/1329023778/
718デフォルトの名無しさん
2012/02/29(水) 19:50:47.06 アイドルはLinQでMSのはLINQだ
719デフォルトの名無しさん
2012/03/04(日) 00:59:43.14 http://theinterviews.jp/linq/3146658
LINQネタにも返してくれてるしそんなに怒るなよw
LINQネタにも返してくれてるしそんなに怒るなよw
720デフォルトの名無しさん
2012/03/04(日) 01:34:42.96 アイドルも大変だなw
721デフォルトの名無しさん
2012/03/04(日) 04:23:02.45 律儀に返してるのかw
722デフォルトの名無しさん
2012/03/04(日) 10:01:16.95 ステマスレとして終息か
723デフォルトの名無しさん
2012/06/27(水) 07:12:16.27 特定PCのみ、LINQ to EntitiesのLINQのクエリ構文だと
単純なクエリでもtimeoutするくらい遅いのですが、
なにか分かりますか?ExecuteStoreQueryなら同等でも一瞬なんです。
・遅い
Using context As New Entities
Dim hoge = (From a In context.hoge Where a.hoge = "xx").ToList()
End Using
・速い
Using context As New Entities
Dim hoge = context.ExecuteStoreQuery(Of hoge) _
("select * from hoge where hoge = 'xx')
End Using
前者だと高い確率で以下が出ます。後者は全く出ません。Entitiesは同じものです。
{"Timeout に達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。
現在のコマンドで重大なエラーが発生しました。結果は破棄しなければなりません。
サーバーから結果を受信しているときに、トランスポート レベルのエラーが発生しました。 (provider: Session Provider, error: 18 - ピアによって接続が閉じられました)"}
単純なクエリでもtimeoutするくらい遅いのですが、
なにか分かりますか?ExecuteStoreQueryなら同等でも一瞬なんです。
・遅い
Using context As New Entities
Dim hoge = (From a In context.hoge Where a.hoge = "xx").ToList()
End Using
・速い
Using context As New Entities
Dim hoge = context.ExecuteStoreQuery(Of hoge) _
("select * from hoge where hoge = 'xx')
End Using
前者だと高い確率で以下が出ます。後者は全く出ません。Entitiesは同じものです。
{"Timeout に達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。
現在のコマンドで重大なエラーが発生しました。結果は破棄しなければなりません。
サーバーから結果を受信しているときに、トランスポート レベルのエラーが発生しました。 (provider: Session Provider, error: 18 - ピアによって接続が閉じられました)"}
724デフォルトの名無しさん
2012/06/27(水) 11:03:37.78 サーバー一緒か?
いずれにしてもクエリーフックしてどう違うかみて、そのクエリーを単体でやったらどうなるかとかより切り分けれ
いずれにしてもクエリーフックしてどう違うかみて、そのクエリーを単体でやったらどうなるかとかより切り分けれ
725デフォルトの名無しさん
2012/06/28(木) 10:55:47.07 >>724
サーバーも一緒です。接続文字列は変えていません。
ToTraceStringでクエリを抜きだしてみましたが、後者のクエリに全てのフィールドを
指定しているくらいで、他は同等でした。
ただ、SSMSで実行してみると、同様の現象は再現できました。・・のでEFは関係なさそうです・・
実行する度にレスポンスが返るのが遅くなります。
1回目:0秒、2回目:2秒、3回目:8秒、4回目:24秒、5回目:60秒・・というように。。
* だと実行を何度連打しても0秒で返ります。
DBの専用スレで聞いてきた方が良いですよね。。ありがとうございました。
サーバーも一緒です。接続文字列は変えていません。
ToTraceStringでクエリを抜きだしてみましたが、後者のクエリに全てのフィールドを
指定しているくらいで、他は同等でした。
ただ、SSMSで実行してみると、同様の現象は再現できました。・・のでEFは関係なさそうです・・
実行する度にレスポンスが返るのが遅くなります。
1回目:0秒、2回目:2秒、3回目:8秒、4回目:24秒、5回目:60秒・・というように。。
* だと実行を何度連打しても0秒で返ります。
DBの専用スレで聞いてきた方が良いですよね。。ありがとうございました。
726デフォルトの名無しさん
2012/06/28(木) 13:03:56.26 件数がアホみたいに多いとかじゃないの
ToListしてるってことは即時全結果返すってことだから
ToListしてるってことは即時全結果返すってことだから
727デフォルトの名無しさん
2012/06/28(木) 13:13:47.69 >>725
100件程度です。問題になる件数ではないと思います。First()でも同様でした。
あとsqlserverの専用スレで聞いてきましたのでマルチポストになってしまいますし、
こちらは閉め切ります。ありがとうございました。
100件程度です。問題になる件数ではないと思います。First()でも同様でした。
あとsqlserverの専用スレで聞いてきましたのでマルチポストになってしまいますし、
こちらは閉め切ります。ありがとうございました。
728デフォルトの名無しさん
2012/06/29(金) 09:49:47.53 なってしまうじゃねえよ死ねカス
729デフォルトの名無しさん
2012/06/29(金) 10:11:31.00 聞いてくるって事前に書いたろうが。失せろクズ
730デフォルトの名無しさん
2012/06/29(金) 19:48:13.25 結局はVMのせいか。なんでCPUって思ったんだろうね。
731デフォルトの名無しさん
2012/07/06(金) 14:48:44.96 VBだとFunction(x)とかの記述キチガイじみてるけど
デバッグ中に他の箇所修正できるとこは
使い捨てプログラム作るときはうらやましいな
デバッグ中に他の箇所修正できるとこは
使い捨てプログラム作るときはうらやましいな
732デフォルトの名無しさん
2012/07/06(金) 14:54:02.15 俺はC#の方がキチガイに見えるw x=>とか象形文字かよソレ。
なんか調べてるとき、vb読みに脳内変換するのがツライです・・
なんか調べてるとき、vb読みに脳内変換するのがツライです・・
733デフォルトの名無しさん
2012/07/06(金) 16:13:40.13 そのうちIDE上でVB/C#のリアルタイム切り替えができる時代が来る
734デフォルトの名無しさん
2012/07/06(金) 19:23:41.81 >>732
VBにもラムダ式あるだろ
VBにもラムダ式あるだろ
735デフォルトの名無しさん
2012/07/06(金) 20:07:38.46 そうだが、なにを言ってるんだおm
736デフォルトの名無しさん
2012/07/06(金) 20:34:12.10 ミッドチルダ式とベルカ式どっちが好き?
737デフォルトの名無しさん
2012/07/06(金) 21:51:23.02 オギノ式
738デフォルトの名無しさん
2012/07/30(月) 22:30:23.44 LINQは必ず全部探索するのが嫌
木構造のグラフがあるとき条件を満たしたら早期打ち切り、
みたいな処理が書けない
木構造のグラフがあるとき条件を満たしたら早期打ち切り、
みたいな処理が書けない
739デフォルトの名無しさん
2012/07/30(月) 22:57:56.60 Any() みたいなのは見つかった時点でやめてるんじゃね?
740デフォルトの名無しさん
2012/07/30(月) 23:57:33.89 うん
741デフォルトの名無しさん
2012/08/06(月) 18:01:26.34 AsParallelってCPUリソース食う以外のデメリットってある?あんまり見ないなと・・
742デフォルトの名無しさん
2012/08/06(月) 18:16:29.27 並列化させると結果の順番が保証できない。
オプションで保証できるけどそれだと並列化の効果が落ちる。
オプションで保証できるけどそれだと並列化の効果が落ちる。
743デフォルトの名無しさん
2012/08/06(月) 19:02:00.50 ほうほう。なるほど。d
744デフォルトの名無しさん
2012/08/06(月) 22:38:59.20 結局要件次第なわけだけども…
そこまで強烈に並列性を求められて、かつ、並列化に向いてる処理ってのが、業務とかだとほとんどないはず。
そこまで強烈に並列性を求められて、かつ、並列化に向いてる処理ってのが、業務とかだとほとんどないはず。
745デフォルトの名無しさん
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しちゃう
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★12 [蚤の市★]
- 中国の渡航自粛要請1カ月 大阪の観光バス予約ゼロ、東北にも波及 [蚤の市★]
- 【神戸】エレベーター「かご」なく男性医師が転落死 大手「三菱電機ビルソリューションズ」の担当者、安全装置切り放置か [ぐれ★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 [蚤の市★]
- 不倫疑惑の永野芽郁さん、CM削除ドミノの違約金“やはり発生は免れない”可能性 約10億円になる見込み、本人は全額支払う覚悟 [牛丼★]
- 【群馬】横断歩道を渡っていたNHKアナウンサーが車にはねられ骨折などの重傷 前橋市 [ぐれ★]
- 人の弱みを握ると気持ちいいよな?
- バター醤油ご飯食べてみたらwwwwwwwwwwwwwwww
- 【悲報】ドイツ人「なんで日本人って自炊するの?出来合の惣菜や冷食食った方が楽でコスパいいやん。そんなんだから低生産性なんだよ [786648259]
- 【動画】まんさん、アラジンのジーニーみたいな男にボコボコにされる🧞‍♂ [632966346]
- 底辺テイカー気質Vtuberを破壊する遊びが闇深いと話題に [922647923]
- 「よかれと思って毎日食べていたのに」…“朝の空腹時”に絶対に避けるべき食品とは? [268718286]
