[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:48 / Filesize : 268 KB / Number-of Response : 1046
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part93



1 名前:デフォルトの名無しさん(ワッチョイ 1e06-m8Mb) mailto:sageteoff [2017/04/22(土) 08:52:00.93 ID:iVvswOrb0.net]
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/

■コードを貼る場合はこちら
ideone.com/

■前スレ
C#, C♯, C#相談室 Part92
echo.2ch.net/test/read.cgi/tech/1485589613/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

610 名前:デフォルトの名無しさん [2018/07/05(木) 22:48:00.22 ID:bXohcl5rE]
C#的にはこういうプロジェクト構成(VisualStudio)が正しい!
という考えたがある方、詳しく教えてほしいんですが、
スレ違いでしょうか?

611 名前:デフォルトの名無しさん mailto:age [2018/07/11(水) 23:46:27.39 ID:wZEnBA6P0.net]
隔離用のスレとはいえ下がりすぎなので上げとく

612 名前:デフォルトの名無しさん mailto:sage [2018/07/12(木) 02:43:18.10 ID:VF8Jnm1rH.net]
超初心者ですが
RectangleとかPointとかって、値型?
値型ってコンストラクタに引数渡せないって、さっき、読んだけど

613 名前:デフォルトの名無しさん mailto:sage [2018/07/12(木) 20:29:08.90 ID:LFvEI7az0.net]
>>589
初心者ですが
そいつらは値型でつ
値型は無引数のコンストラクタにコードを書くことができないんでなかったかいな?

614 名前:デフォルトの名無しさん [2018/07/12(木) 21:32:30.73 ID:wWmeulvip.net]
単なる構造体にインスタンスもくそもないからな。

615 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 09:57:07.24 ID:AoeZKvgvM.net]
構造体は初期化が0フィルだから
フィールドが非null値の場合はどうなるのかはしらない

616 名前:デフォルトの名無しさん [2018/07/14(土) 10:59:20.35 ID:21Pqhes0M.net]


617 名前:のデフォルト値でね? []
[ここ壊れてます]

618 名前:デフォルトの名無しさん [2018/07/14(土) 11:24:43.76 ID:td9rD4BU0.net]
Visual Studio 2017
合計 90 日間が過ぎました。

無料で使いたいんですが、どうすれば良いでしょうか?



619 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 11:27:35.51 ID:trGcxTua0.net]
無料の使ってください

620 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 11:29:07.89 ID:1NIDWWGu0.net]
90日ってことは有償版だろ
大人しく買えよ

もしくはCommunity版を検討する

621 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 11:36:04.11 ID:EtwCAyCb0.net]
>>594
どうしても有償版を使い続けたいのなら期限が切れるたびにWindowsを再インストールすればOK

622 名前:デフォルトの名無しさん [2018/07/14(土) 12:06:05.24 ID:td9rD4BU0.net]
Community版に移行する事にしました。
ありがとうございます

623 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 23:26:56.12 ID:mNPit/gT0.net]
Communityって登録しないと期限とかなかったっけ

624 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 01:08:37.15 ID:WCfEKFtx0.net]
Microsoftアカウントを登録しないと30日

625 名前:デフォルトの名無しさん [2018/07/15(日) 11:14:40.73 ID:GMJtRfj30.net]
サブスクリプションで全シリーズ揃えてる俺に死角無し。

626 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 16:05:05.76 ID:bsqxWqeBM.net]
>>601
VS-4.2くれ

627 名前:デフォルトの名無しさん [2018/08/02(木) 11:31:31.36 ID:ijDqx/PBp.net]
Entity Framework Coreについて質問です。

以下のように1対多の入れ子(left join)になったデータを取ってくる場合で、一番最下層のテーブルに取得条件を追加したいです。
どのようにしてwhereメソッドを書けばよいでしょうか。
.Include(x => x.Departments)
.ThenInclude(x => x.Groups)
.ThenInclude(x => x.SubGroups)
.ThenInclude(x => x.Employees)
.ThenInclude(x => x.Skills)

例えば以下のような感じです。
Skill.ExpireDate >= DateTime.Today

それぞれのプロパティはコレクションのため以下のようには書くことができません
Where(x => x.Departments.Groups.SubGroups.Employees.Skills.ExpireDate >= DateTime.Today)

ThenIncludeで指定しているプロパティがすべて列挙でなければ以下のように書けると思うのですが・・・
Where(x => x.Department.Group.SubGroup.Employee.Skill.ExpireDate >= DateTime.Today)

それぞれの階層のクラスは全プロパティ取得することを想定しています。
Entity Framework Coreで実現可能でしょうか。

628 名前:デフォルトの名無しさん mailto:sage [2018/08/02(木) 12:14:20.65 ID:jJXbX9Nfa.net]
その条件ならテーブルを上からたどる必要はないのかと



629 名前:デフォルトの名無しさん [2018/08/02(木) 12:30:22.50 ID:ijDqx/PBp.net]
>>604
辿らない場合、スキルクラス単位で条件絞り込みができるのでしょうか?
これができればとても楽なのですが、、、

630 名前:デフォルトの名無しさん mailto:sage [2018/08/02(木) 13:06:25.80 ID:CFW8XzdE0.net]
どうしても上からたどりたいなら
WhereとAnyで掘り下げていくとか
SelectManyで平坦化するとかか

631 名前:デフォルトの名無しさん [2018/08/02(木) 15:11:34.29 ID:ijDqx/PBp.net]
いえ、辿りたいわけではなくて、辿らないとできないと勝手に思ってただけです
辿らなくて良いなら辿らないでやれればベストです。
ですがその方法がわからないので教えてもらえませんでしょうか。

632 名前:デフォルトの名無しさん mailto:sage [2018/08/02(木) 21:52:06.55 ID:nmSSZypj0.net]
var q = _context.Hoges.FromSql($@"
select H.* from Hoges H where exists (
select null from Departments D where H.DeptId = D.DeptId and exists (
select null from Groups G where D.DeptId = G.DeptId and exists (
select null from SubGroups SG where G.GrpId = SG.GrpId and exists (
select null from Employees E where SG.SGrpId = E.SGrpId and exists (
select null from Skills SK where E.EmpId = SK.EmpId and SK.ExpireDate >= {DateTime.Today}
)))))
");

var hoges = q.Include(x => x.Departments)
.ThenInclude(x => x.Groups)
.ThenInclude(x => x.SubGroups)
.ThenInclude(x => x.Employees)
.ThenInclude(x => x.Skills)
.ToList();

633 名前:デフォルトの名無しさん mailto:sage [2018/08/03(金) 07:33:44.44 ID:TQSHsawm0.net]
以下のコードはどういう内容なのでしょうか?
public IList<float> Plus214_Output_0 { get; set; }


特に
<float>、 { get; set; }

が分かりませんでし

634 名前:

以下の一部になります

https://github.com/Microsoft/Windows-Machine-Learning/blob/master/Samples/UWP/MNIST/src/MNIST.cs
[]
[ここ壊れてます]

635 名前:デフォルトの名無しさん mailto:sage [2018/08/03(金) 07:54:13.63 ID:/ayVy0z+a.net]
>>609
前者は「ジェネリック」、後者は「自動実装プロパティ」でググれ

636 名前:デフォルトの名無しさん mailto:sage [2018/08/03(金) 07:55:39.91 ID:TQSHsawm0.net]
>>610
ありがとうございます!めっちゃ助かりました!

637 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 20:55:48.43 ID:7nA6P5yg0.net]
Linqでの書き方で質問なのですが
同じサイズのdataAとdataBのデータがあるとして
データが違う箇所のIndexを取り出すとしたらどう書けば良いでしょうか?
今は↓のようなコードになっています。

List<int> dataA = new List<int>() { 1, 2, 3, 4, 5, 6 };
List<int> dataB = new List<int>() { 1, 2, 4, 3, 5, 6 };
bool resultAB = dataA.SequenceEqual( dataB);

if(resultAB = false)
{
foreach(var A in dataA)
{

比較処理
}
}


結果
2
3

638 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:22:20.14 ID:UKw4EMmv0.net]
>>612
ない頭絞って考えてみた。
Enumerable.Range(0, dataA.Count()).Where(p => dataA[p] != dataB[p]);
やら
dataA.Select((v, i) => new { value = v, index = i }).Where(p => p.value != dataB[p.index]).Select(p => p.index);

どっちも汚い。もっと賢いのおしえろください



639 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:24:07.13 ID:ly4lPw5D0.net]
lLINQでやらんとあかんのかなんなのか

640 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:29:04.18 ID:BzL1Bfeb0.net]
こういうのってforで一つずつ比較するのが一番読みやすくて楽じゃね?

641 名前:611 [2018/08/07(火) 21:35:47.39 ID:UKw4EMmv0.net]
無理矢理LINQつかってみたけど>>615に一票

642 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:36:11.45 ID:q6HoXiPg0.net]
>>615
俺もそう思う。他の処理が入ってもすぐに組み込めるし
Linqは可読性がメリットなんだから、わかりにくくなったら本末転倒だし
あくまで個人の感想です

643 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:41:47.05 ID:7nA6P5yg0.net]
dataAとdataBが1000件以上あるので、まず単純に変更してるのがあるか?で
SequenceEqualを使ってみた流れでLINQを調べていた流れで知りたかったです。
forで書くのがわかりやすいとは思うけど、LINQでもっとうまく書けるかなと思って

>>613参考になりました。ありがとうございます!

644 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:43:44.13 ID:5i41CNK00.net]
for では、比較されるレコードが送られてくるけど、

LINQ では、答えしか送られてこないから、効率的

645 名前:デフォルトの名無しさん [2018/08/07(火) 23:11:20.30 ID:EHUuk9/6a.net]
zip使えばいいんでね?

646 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 23:26:49.96 ID:WUtnzCvr0.net]
Linqのほうがわかりやすいし、ソースがランダムアクセスできるとも限らんだろ

シーケンスを束ねてインデックス振って比較して違うやつだけ取り出してインデックスを取り出す
Linqなら思ったことをそのまま書けばいい

IEnumerable<int> Hoge<T>(IEnumerable<T> a, IEnumerable<T> b) {
var comp = Comparer<T>.Default;
return a.Zip(b, (x, y) => (x, y)) // シーケンスを束ねて
.Select((e, i) => (i, e.x, e.y)) // インデックス振って
.Where(e => comp.Compare(e.x, e.y) != 0) // 比較して違うやつだけ取り出して
.Select(e => e.i); // インデックスを取り出す
}

ループじゃぱっとみ何やってるかわかんねえよ

647 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 23:31:30.75 ID:kuothdai0.net]
あくまで個人の感想だけど。
自分も >>621 みたいなのの方が分かりやすいなあ。
てか、そういう書き方をよくするというか。

648 名前:デフォルトの名無しさん [2018/08/07(火) 23:35:51.16 ID:vAj7NH ]
[ここ壊れてます]



649 名前:SO0.net mailto: LINQってEntityFrameworkでしか用途なくねえ? []
[ここ壊れてます]

650 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 23:37:10.34 ID:9e6mZaIW0.net]
>>623
は?

651 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 23:40:05.44 ID:ly4lPw5D0.net]
>>623

652 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 00:39:26.55 ID:cXv1v5r0a.net]
>>621
うーん、普通にこっちのほうが分かりやすいと思うけどw
別にLINQ否定派じゃないよ
IEnumerable<int> GetIndices()
{
  List<int> dataA = new List<int>() { 1, 2, 3, 4, 5, 6 };
  List<int> dataB = new List<int>() { 1, 2, 4, 3, 5, 6 };
  for (int i = 0; i < dataA.Count; i++)
    if (dataA[i] != dataB[i]) yield return i;
}

653 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 03:30:51.92 ID:x4iNladl0.net]
Zipしたものをforeachで回すのが一番自然
IEnumerable<int> Hoge(IEnumerable<int> A, IEnumerable<int> B)
{
  var i = 0;
  foreach (var eq in A.Zip(B, (a, b) => a == b))
  {
    if (!eq) yield return i;
    i++;
  }
}

自分はやらんけどLinqならこう
dataA.Zip(dataB, (a, b) => a == b).Select((eq, i) => eq ? -1 : i).Where(i => i >= 0);

654 名前:611 mailto:sage [2018/08/08(水) 05:09:02.93 ID:9ryRYesD0.net]
Zip知らんかったわー。超参考にする。

655 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 13:38:09.59 ID:CtU8HUVGd.net]
インデックスが必要な時、わざわざselect挟んでインデックス貼るの馬鹿らしい感じがして好きになれないんだけど仕方ないよね?
そんなにインデックスを参照することが多いなら生成時に一緒に貼っとけって話かもしれんが…
そもそもlinqマスターはインデックスを必要としない設計にいつもなるの?
自分もインデックスが無くて済むように考えるけど結果的に必要になる箇所が細部で出てくるんだよね

656 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 14:08:00.53 ID:csO2M6exd.net]
どうしても必要な時はselect((value, index) => new {V = value, I = index})でインデックス引っ張ってるわ
それでもインデックス欲しい条件1行で書けるのが楽だからLinq便利派だけども

657 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 14:25:20.52 ID:CtU8HUVGd.net]
>>630
俺もそれ、ちょくちょくするんだけどforで回したほうがよくね?って思っちゃうことがあるんだよね
もちろん処理によりけりと言ってしまえばそれまでなんだけど
比較するようなもんじゃないかもしれんがjavascriptなんかだと大抵インデックス取れるから、そっち触ったあとにC#に戻ると処理考えるときにインデックスありきで考えがちになっちゃう気がしてる

658 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 14:32:55.42 ID:CtU8HUVGd.net]
先に出てた課題でもzipしたあと、そのままlinqで処理を完結させるか、zip後にforで回すか
個人的にはzipがどちらにせよ入るなら最後までlinqの方が1つの処理を1つの手法で解決してる感じがして好き
だけどインデックスが処理に必要だからfor使いたいって気持ちもわかる



659 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 14:53:36.93 ID:bbTjp3FCd.net]
>>631
まぁforのがいいと感じるならそれでもいいんじゃないかな
複雑な処理しない限りは大体Linqのがスッキリするからそうしてるだけだし

660 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 15:07:53.10 ID:x4iNladl0.net]
こういう拡張メソッド作っておくのはたまにやる
public static IEnumerable<int> WhereIndex<T>(this IEnumerable<T> self, Func<T, bool> predicate)
{
  var i = 0;
  foreach(var s in self)
  {
    if(predicate(s)) yield return i;
    i++;
  }
}

dataA.Zip(dataB, (a, b) => a == b).WhereIndex(eq => !eq);

拡張メソッド嫌いな人もいるだろうけど一番読みやすい
わざわざSelectでインデックスつけてる冗長さもないし、添字アクセスもないし、使う時はすっきり意味がわかりやすい

661 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 16:44:49.34 ID:Gn4Y43YUM.net]
>>634
正直クソ分かりにくい
俺がレビューしたらリジェクトするわ
WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する
そもそも

662 名前:メソッド名以前に、LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、
キーやインデックスの方を返すような操作については特に念入りにそれがわかるような明示的な表記になるように工夫したほうがいい
[]
[ここ壊れてます]

663 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 17:02:43.62 ID:0wIwbQiXM.net]
SelectIndexWhere()ならどうか。英国紳士にも通じると思う

664 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 17:20:32.65 ID:o48M+fLoM.net]
SelectWithIndexやな

665 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 17:26:15.62 ID:icN1uiHAa.net]
SelectIndexFilteredByValue
これでもパッと見 ? となる人は多そう

666 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 17:40:49.62 ID:Uqgxm++Va.net]
>>636
IndicesWhereで十分でしょ
Selectはいらんと思うw
メソッドなのに動詞じゃないのはおかしいって言ったって、組み込みのWhereだってそうだ

まあスレ違いだね。

667 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 18:11:22.97 ID:ucfZkVugd.net]
>>639
誰が動詞じゃないとおかしいって?

668 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 18:27:19.45 ID:x4iNladl0.net]
>>635
>WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する

そんなのはWhereでできるし

>LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、
>キーやインデックスの方を返すような操作については

それもSelectでできるし
だいたい要素の値を操作していくものっていう暗黙的了解があるならWhereIndexも要素の値が対象と思うんじゃない?
なんか矛盾してね?



669 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 19:23:56.51 ID:x4iNladl0.net]
ほぼ同じ拡張メソッドでIndexWhereのが引っかかったわ
多分こっちの方が自然なんだろうな
一応候補だったんだが自分的にしっくりこなかったけど

670 名前:デフォルトの名無しさん mailto:sage [2018/08/09(木) 21:27:13.79 ID:s67NkejU0.net]
>>631
ランダムアクセスできるとは限らんしっていうかLinqだとほとんど出来ない

671 名前:デフォルトの名無しさん mailto:sage [2018/08/09(木) 22:09:58.32 ID:VdJ1XdFa0.net]
>>643
ランダムアクセスできないコレクション扱うときにインデックスが欲しくなるケースってなかなか無いと思うけど

672 名前:デフォルトの名無しさん mailto:sage [2018/08/10(金) 23:12:00.00 ID:AJVeRJgN0.net]
>>644
ランキングとかページングとかか?

673 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 00:11:00.13 ID:p6HuaRWz0.net]
>>645
それってインデックスつけることが一つの目的じゃない?
インデックスってかソートかな?
いろんなところでいろんな処理されるコレクションがあって、その処理の殆どにインデックスが不要だけどごく一部にインデックスがほしいとき、わざわざ1行追加するのスッキリしないなぁって感じ

たった1行なんだから書きゃいいんすよ?
それはわかってるけどなんか気持ち悪いなぁって気がするだけ

674 名前:デフォルトの名無しさん [2018/08/11(土) 12:41:19.45 ID:YyI+aygL0.net]
ほとんど必要が無いインデックスだけど
ごく稀に必要になるから必要になるところでだけインデックスを追加するんだろ
ほとんど使わないインデックスのためにずっとランダムアクセス性を維持するとか無駄じゃん

675 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 14:21:00.05 ID:WHbJdrO8a.net]
何を言ってるのか意味が分からんけど、indexって言葉の意味を知ってて言ってるのかなそれw

676 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 14:23:04.22 ID:p6HuaRWz0.net]
>>647
いや、linqでインデックスを付与しないけどランダムアクセスすることはあるよ?
前提変えたらそら意味通らんよ
コレクションをlinq以外で処理しちゃ駄目ルールでもあるの?

677 名前:デフォルトの名無しさん [2018/08/11(土) 14:36:01.31 ID:YyI+aygL0.net]
>>649
なにいってんだ?
IEnumerable<T>にインデックスなんてない
ないからSelectで付与するんでしょ

そんなルールはないけどほとんどほとんどLinqで済むでしょ?
Linqでサクサク処理してるのに中に突然ループが紛れ込んできたらキモいって話をしてる

var tmp = list.Where(...).OrderBy(...).ToArray();

for (int i = 0; ...) {
...
}

var result = tmp.Where(...).Select(...);

678 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 14:48:08.19 ID:p6HuaRWz0.net]
>>650
え?ずっとそういう話をしてたのになんで突然
>ほとんど使わないインデックスのためにずっとランダムアクセス性を維持するとか無駄じゃん
って書いたの?

インデックスのないlinq処理でそれが必要になったときわざわざselectで付与するのなんか気持ち悪いねーって話よ?



679 名前:デフォルトの名無しさん [2018/08/11(土) 14:59:36.83 ID:YyI+aygL0.net]
>>651
気持ち悪いのはお前の感覚ではという話だろ
俺からすればToArrayやToListをかましてメモリとCPUを無駄にしたり余計なメソッドを追加するほうが嫌
メソッド化に関しては再利用性が高いかうまく抽象化されていて可読性が高まるというなら別だが
真にランダムアクセス性が必要なアルゴリズムならば変換せざるを得ないがそもそも今回の問題には必要がない

680 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 15:12:53.25 ID:p6HuaRWz0.net]
>>652
うん、そうだよ
個人的に気持ち悪いなーってだけ
はじめからそういうふうにしか話ししてないつもりだけど

ランダムアクセスが不要だからあえてランダムアクセスできないコレクションを選択するの?
ランダムアクセスは不要だけどあったって使わないだけだからどっちでもいい、ってなるのが普通じゃないの?
パフォーマンス要求がシビアでランダムアクセスできるコレクションを選択することで、その要求から外れてしまう、とかいうならわかるけど

681 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 15:28:37.80 ID:YyI+aygL0.net]
>>653
ランダムアクセスが不要なアルゴリズムなら「当然」IEnumerable<T>(ランダムアクセスできないコレクション)を選択するだろう
まったくもって「あえて」と言う理由が分からん
もしもSelectやWhereの引数が配列だったら普通のプログラマなら「あえて配列にしたのはなぜか」と疑問を持つだろう
なんか逆なんだよね思考パターンが

682 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 15:33:32.78 ID:p6HuaRWz0.net]
>>654
そういうもんかー
んじゃあ使うコレクションがランダムアクセスを提供しているか否かを把握しとかないと選択できないな…

683 名前:デフォルトの名無しさん [2018/08/12(日) 00:56:37.14 ID:UOoEXFjMp.net]
コレクションって言葉がダメだと思うぞ?
そもそもIEnumerableはシーケンシャルな列挙の機能しか提供しない
根本的に理解が間違ってる

684 名前:デフォルトの名無しさん mailto:sage [2018/08/12(日) 11:56:03.51 ID:GZni4QRja.net]
コレクションという表現はおかしいね
無限に乱数を返すものをソースにできるし

685 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 15:21:46.30 ID:7meTQdNO0.net]
マジレスするとメッセージ捕まえて
自力で描画すれば可能なんだけど
労力に見会わないのでお勧めしない

webやWPF, UWPならグラ弄るの簡単

686 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 15:23:43.41 ID:7meTQdNO0.net]
誤爆しました すみません

687 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 16:03:02.33 ID:RaawotRPM.net]
のへこののけとこけノハケケノノネネサマを通り越しておりましたとが気になると7人

688 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 16:03:23.33 ID:RaawotRPM.net]
こねのこのねのけのねここけこそけ



689 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 22:10:23.24 ID:IOzhaO6j0.net]
doxygenみたいなドキュメント生成ツールを使うとxaml部分がまともに解析出来ません。
bindingしているviewとviewmodelの関係なんかが分かるドキュメントにしたいんですが何か良い方法ないでしょうか?

690 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 22:17:10.47 ID:BClpbb6X0.net]
Func<string> func = () => { return "text"; };
var res = func();

これを一文で書くことはできますか。

ふと気になっただけではあるけれど、自分で解決できなくて気になって仕方がない。
基本的なことが分かってないような気がする。

691 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 22:28:35.55 ID:9WO+tdsEa.net]
var res = "text";

692 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 00:16:02.34 ID:rZVfBBf1a.net]
>>664
まあそうなるよな

693 名前:デフォルトの名無しさん [2018/09/15(土) 00:21:48.95 ID:elLmwu/20.net]
本当はなにをしたかったんだろう
例題が悪い気がする

694 名前:661 mailto:sage [2018/09/15(土) 00:41:48.54 ID:LMkhUY/p0.net]
ああ、そうか。w

パラメータに対してちょっと複雑な変換を掛けるのだけど、汎用性がないから専用関数作るのもなんだし、
だったらラムダ式で書けばいいんじゃね?→ ラムダ式は Func 型?だから戻り値とれねーじゃん ってところから進めなった

695 名前:
他にやり方はあるので出来なくてもいいのだけど、気にはなって。
[]
[ここ壊れてます]

696 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 01:22:08.16 ID:rZVfBBf1a.net]
専用関数でいいんじゃない?
複雑な処理ならそれこそ括りだしておいてわかりやすくしたほうがバグ出にくいし簡単でしょ

697 名前:デフォルトの名無しさん [2018/09/15(土) 05:59:42.97 ID:crViL/AR0.net]
>>667
参照渡すとか?

698 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 15:15:22.99 ID:aC3C7hdpa.net]
こんなのは嬉しくないね
var pi =
  (
    (Func<double>)
    (      
      () =>
      {
        const int total = 1000000;
        var inside = 0;
        var rnd = new Random();
        for (int i = 0; i < total; i++)
        {
          var x = rnd.NextDouble() * 2 - 1; var y = rnd.NextDouble() * 2 - 1;
          if (x * x + y * y < 1) inside++;
        }
        return 4.0 * inside / total;
      }
    )
  )();



699 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 15:22:04.34 ID:aC3C7hdpa.net]
これも却下だな
Func<Func<double>, double> invoke = (f) => f();
var pi = invoke
  (
    () =>
    {
      const int total = 1000000;
      var inside = 0;
      var rnd = new Random();
      for (int i = 0; i < total; i++)
      {
        var x = rnd.NextDouble() * 2 - 1; var y = rnd.NextDouble() * 2 - 1;
        if (x * x + y * y < 1) inside++;
      }
      return 4.0 * inside / total;
    }
  );

700 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 17:23:21.76 ID:aC3C7hdpa.net]
全然関係ないけど、Randomって[0, 1]とか(0, 1)の乱数は作れないのか
半開区間だと使いづらいような気がするけどそんなことないのかな

701 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 18:10:42.64 ID:ghSS5jwya.net]
言葉の意味はよくわからんが
Randomは第二引数未満の乱数発生するんじゃ?

702 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 18:34:42.22 ID:nwnNkRfe0.net]
docsにもあるけど
https://docs.microsoft.com/ja-jp/dotnet/api/system.random?redirectedfrom=MSDN&view=netframework-4.7.2
dobonの方が分かりやすいし読みやすいから
https://dobon.net/vb/dotnet/programing/random.html の
//0.0以上1.0未満の乱数を倍精度浮動小数点数で返す
Double d = r.NextDouble();
>>672こういう意味とは違うの?
整数範囲で出して割った方が範囲や有効桁も決められるからそっちの方がよさそうな気もする

703 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 18:56:24.76 ID:aC3C7hdpa.net]
[0, 1]とか(0, 1)は数学の記号ね(多分高校1年ぐらいで習ってるはずw)

Random.DoubleNextの戻り値は[0, 1)(つまり0≦x<1)らしい
普段乱数使うようなコード書いてないからよく分からんけど、
0≦x≦1とか0<x<1でないと困る場面も多いんじゃないかなと思っただけ

704 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 19:01:32.64 ID:Bg+wr9i5a.net]
えなんかめんどくさいからもういいよ

705 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 19:05:58.75 ID:nwnNkRfe0.net]
有効桁区切るのと一緒で丸め、切り上げ、切り捨てしたらいいだけでは
Random自体C#で使う場面に出くわしたことないからあまり考えないな

706 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:19:51.91 ID:Fr67tYwB0.net]
game engineだとか[]の乱数あったりするよ
()は見たことない
コーディングしてたらわかるけど利用場面は圧倒的に少ない

707 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:30:38.93 ID:OUVvcRON0.net]
>>667
> パラメータに対してちょっと複雑な変換を掛けるのだけど
と言うなら例もパラメーター使ってる例を書かなきゃ

>>670
俺もこれしか思いつかなかった
そもそも
var f = (string x) => { return "abc" + x; };
位は型推論してくれてもいいと思うんだけど難しいのかな?

708 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:39:04.65 ID:OUVvcRON0.net]
>>675
例えば0〜9の整数乱数がほしい時に[0,1)なら10倍して整数部分を取るだけだけど(0,1)とか[0,1]だとすごく面倒



709 名前:デフォルトの名無しさん [2018/09/15(土) 20:42:09.91 ID:KIanXBkQ0.net]
面倒だったら擬似乱数生成器を自分で作ればいい
キミラ程度が使う程度の擬似乱数だったら数行コピペでできる程度のもんで十分だからな

710 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:49:32.65 ID:Xc5RKOnR0.net]
>>667
ローカル関数じゃだめなん?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<268KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef