「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part127 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489498042/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part128 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/05/02(火) 22:05:40.13ID:OPFlvhxj636デフォルトの名無しさん
2017/05/30(火) 01:40:24.01ID:yo83A8ao637デフォルトの名無しさん
2017/05/30(火) 02:03:42.90ID:7mmlzI+/638デフォルトの名無しさん
2017/05/30(火) 02:06:44.79ID:yo83A8ao639デフォルトの名無しさん
2017/05/30(火) 07:06:41.02ID:3LKQdhjH >>612で良かったじゃんな
640デフォルトの名無しさん
2017/05/30(火) 08:10:12.34ID:nt0s20eG >>632,634
InterruptはSleepやロックを潰すだけだよ
従来Interruptで止めていたようなケースでは、自分でトークンの明示的なチェックなんていらなくて
呼び出し先の時間のかかるメソッドにトークンを適切に引き継ぐだけでいい(キャンセルされたら例外で止まるから)
基本的にスレッドをブロックするだけの同期処理とは違って、
async/awaitの場合は「待ち方」が実装に依存するので、最終的に「待っている」ところに限って
実装者がキャンセル処理を個別に実装する必要がある
そこ以外での扱いの考え方は基本的にはInterruptと変わらんよ
InterruptはSleepやロックを潰すだけだよ
従来Interruptで止めていたようなケースでは、自分でトークンの明示的なチェックなんていらなくて
呼び出し先の時間のかかるメソッドにトークンを適切に引き継ぐだけでいい(キャンセルされたら例外で止まるから)
基本的にスレッドをブロックするだけの同期処理とは違って、
async/awaitの場合は「待ち方」が実装に依存するので、最終的に「待っている」ところに限って
実装者がキャンセル処理を個別に実装する必要がある
そこ以外での扱いの考え方は基本的にはInterruptと変わらんよ
641デフォルトの名無しさん
2017/05/30(火) 08:36:57.90ID:nt0s20eG CancellationTokenの引き継ぎって明示的に渡さなくてもいいように実装できなかったのかな
一番深いところで例外を発生させるという、たかがそれだけのために途中の全てのメソッドに引数を追加しなきゃいけないのはイケてない
コンテキストを跨るから単純なスレッドローカルじゃ駄目なのはわかるけど、
そこだけSynchronizationContextみたいに手動でstaticプロパティから取ってきて明示的に引き継げばいいだけじゃないのか
それとも意図的に途中で連鎖を切るようなケースを想定してるのかな
一番深いところで例外を発生させるという、たかがそれだけのために途中の全てのメソッドに引数を追加しなきゃいけないのはイケてない
コンテキストを跨るから単純なスレッドローカルじゃ駄目なのはわかるけど、
そこだけSynchronizationContextみたいに手動でstaticプロパティから取ってきて明示的に引き継げばいいだけじゃないのか
それとも意図的に途中で連鎖を切るようなケースを想定してるのかな
642デフォルトの名無しさん
2017/05/30(火) 08:50:03.66ID:nt0s20eG あーでもキャンセルのハンドリング自体が非同期で行われるようなケースまで想定すると、
トークンをスレッドローカルにしたら無関係な他のジョブにまでキャンセルが伝播してしまうケースがあり得るね
やっぱりダメだな
トークンをスレッドローカルにしたら無関係な他のジョブにまでキャンセルが伝播してしまうケースがあり得るね
やっぱりダメだな
643デフォルトの名無しさん
2017/05/30(火) 09:01:41.80ID:+3RQshmo >>612で良かったじゃんな
644デフォルトの名無しさん
2017/05/30(火) 09:36:50.58ID:4zyQHZTY645デフォルトの名無しさん
2017/05/30(火) 10:23:05.72ID:22c10yuY >>644
それは別の問題だろ
それは別の問題だろ
646デフォルトの名無しさん
2017/05/30(火) 10:34:03.46ID:22c10yuY 呼び出した先のメソッドの止め方が分からないだけで
フラグでいいよ
フラグでいいよ
647デフォルトの名無しさん
2017/05/30(火) 11:47:54.70ID:27U6uUbR スクレイピングの処理時間の大半は、レスポンスが返ってくるのを待つ時間と受信処理
CancellationTokenならそれを中断できるけどフラグ処理じゃ手も足も出ない
まあ作っても役立たずのゴミクズボタンが出来るだけだな
CancellationTokenならそれを中断できるけどフラグ処理じゃ手も足も出ない
まあ作っても役立たずのゴミクズボタンが出来るだけだな
648デフォルトの名無しさん
2017/05/30(火) 13:19:04.25ID:iGfRfCvW >>640
従来Interruptで止めてたケースってなんだよ
ここでやってるスクレイピングのためのネットワーク処理はInterruptじゃ止まらないよね?
InterruptとCancellationTokenの類似性って見た目何らかの処理を中断して戻れるってだけでしょ、そんな事は指摘するまでもないし
それ以上は内部実装なども全然違うものだよ
もっと言うとCancellationTokenはキャンセル処理を統一的に扱うインターフェースでInterruptはその実装の一つと見れる
しかしCancellationTokenの実装としてスレッドのInterruptを使っているものは少なくともIO処理ではないでしょう
実際FileStreamのキャンセル実装はwin32apiのCancelIoEx使ってたし
ネットワーク系のもそんな感じでしょ
従来Interruptで止めてたケースってなんだよ
ここでやってるスクレイピングのためのネットワーク処理はInterruptじゃ止まらないよね?
InterruptとCancellationTokenの類似性って見た目何らかの処理を中断して戻れるってだけでしょ、そんな事は指摘するまでもないし
それ以上は内部実装なども全然違うものだよ
もっと言うとCancellationTokenはキャンセル処理を統一的に扱うインターフェースでInterruptはその実装の一つと見れる
しかしCancellationTokenの実装としてスレッドのInterruptを使っているものは少なくともIO処理ではないでしょう
実際FileStreamのキャンセル実装はwin32apiのCancelIoEx使ってたし
ネットワーク系のもそんな感じでしょ
649デフォルトの名無しさん
2017/05/30(火) 13:27:52.68ID:yiTLmUbP >>647
それと611の処理となんの関係があるの?
それと611の処理となんの関係があるの?
650626
2017/05/30(火) 14:31:20.95ID:Wk6Gc0Fl 昨日はタスクのキャンセルの件ありがとうございました。大変助かりました。
そして、また連日の投稿となってしまい申し訳ありませんが
現在また原因不明の現象に悩まされていて困っております。
もしよかったらどなたか解決して頂けませんでしょうか?
seleniumを使ったプログラムなんですが
一度遷移先でタイムアウトが発生してしまうと
それ以降別ページへの遷移ができなくなってしまうというものです。
そもそもなんでタイムアウトを設定しているかというと
重たいページであっても一定時間すぎたら無条件で次ページへ遷移してほしいからです
どなたか解決方法がわかる方お答え頂ければと思います。
ソースは以下のような感じです
webDriver = new ChromeDriver();
// タイムアウトを2秒に設定
webDriver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2));
foreach (string UrlString in UrlList){
try
{
webDriver.Navigate().GoToUrl(UrlString); // 一度タイムアウトが発生すると次回以降遷移出来ない
}
catch (OpenQA.Selenium.WebDriverTimeoutException) { }
}
※UrlListには適当なURLがいくつかはいっております
度々すみませんがどうぞよろしくお願いします。
そして、また連日の投稿となってしまい申し訳ありませんが
現在また原因不明の現象に悩まされていて困っております。
もしよかったらどなたか解決して頂けませんでしょうか?
seleniumを使ったプログラムなんですが
一度遷移先でタイムアウトが発生してしまうと
それ以降別ページへの遷移ができなくなってしまうというものです。
そもそもなんでタイムアウトを設定しているかというと
重たいページであっても一定時間すぎたら無条件で次ページへ遷移してほしいからです
どなたか解決方法がわかる方お答え頂ければと思います。
ソースは以下のような感じです
webDriver = new ChromeDriver();
// タイムアウトを2秒に設定
webDriver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2));
foreach (string UrlString in UrlList){
try
{
webDriver.Navigate().GoToUrl(UrlString); // 一度タイムアウトが発生すると次回以降遷移出来ない
}
catch (OpenQA.Selenium.WebDriverTimeoutException) { }
}
※UrlListには適当なURLがいくつかはいっております
度々すみませんがどうぞよろしくお願いします。
651デフォルトの名無しさん
2017/05/30(火) 14:47:13.92ID:4zyQHZTY >>649
関係ないと思うなら多分君はキャンセルフレームワークの使い方を勘違いしてるんだろうな
CancellationTokenは同じものを引き回して使うの
受け取ったCancellationTokenを呼び出し先のメソッドにそのまま渡すことで、
キャンセル要求時に処理がどのメソッドにあったとしても関係なく例外を起こして潰すことができる仕組みだ
関係ないと思うなら多分君はキャンセルフレームワークの使い方を勘違いしてるんだろうな
CancellationTokenは同じものを引き回して使うの
受け取ったCancellationTokenを呼び出し先のメソッドにそのまま渡すことで、
キャンセル要求時に処理がどのメソッドにあったとしても関係なく例外を起こして潰すことができる仕組みだ
652デフォルトの名無しさん
2017/05/30(火) 14:57:38.82ID:yiTLmUbP >>651
そんな仕組み誰も提供して欲しくないと思うわwww
そんな仕組み誰も提供して欲しくないと思うわwww
653626
2017/05/30(火) 15:23:37.93ID:Wk6Gc0Fl 自分の質問のせいで争いが起こってしまうとは・・・
申し訳ないです。。
申し訳ないです。。
654デフォルトの名無しさん
2017/05/30(火) 15:50:05.28ID:r/CU7EmN 気にすんな
タイムアウトしたら次、ってことはCookieの引き継ぎとかどうでもいいってことになるけど
それなら新しくChromeDriverをnewするって雑なやり方は?
タイムアウトしたら次、ってことはCookieの引き継ぎとかどうでもいいってことになるけど
それなら新しくChromeDriverをnewするって雑なやり方は?
655デフォルトの名無しさん
2017/05/30(火) 16:48:13.36ID:Wk6Gc0Fl はい、クッキーはどうでもいいです
ただchromedriverをnewするとブラウザが新たに立ち上がっちゃうのでなるべく同じブラウザのまま対応したいです
ただchromedriverをnewするとブラウザが新たに立ち上がっちゃうのでなるべく同じブラウザのまま対応したいです
656デフォルトの名無しさん
2017/05/30(火) 18:28:13.59ID:nt0s20eG >>655
それだけが理由ならPhantomJS使えば済む話じやね
それだけが理由ならPhantomJS使えば済む話じやね
657デフォルトの名無しさん
2017/05/30(火) 19:00:00.41ID:9pAG49er あの…WPFとUWPはどっちが速いですか?
優秀な方教えてください
優秀な方教えてください
658デフォルトの名無しさん
2017/05/30(火) 19:01:21.46ID:Z7PF006I >>657
form最強
form最強
659デフォルトの名無しさん
2017/05/30(火) 19:01:55.63ID:9pAG49er >>658
エェッo┤*´Д`*├o
エェッo┤*´Д`*├o
660デフォルトの名無しさん
2017/05/30(火) 19:09:08.93ID:27U6uUbR >>657
UWPが桁違いに早い。特に起動時
UWPが桁違いに早い。特に起動時
661デフォルトの名無しさん
2017/05/30(火) 19:10:38.44ID:9pAG49er662デフォルトの名無しさん
2017/05/30(火) 19:18:21.10ID:27U6uUbR663デフォルトの名無しさん
2017/05/30(火) 19:22:45.51ID:5LsaYMbU ある意味「石器」最強かもねw
664デフォルトの名無しさん
2017/05/30(火) 19:24:02.22ID:Q5Vu0cbW >>656アプリに色々スクレイピングしたデータを表示させたいんです
665デフォルトの名無しさん
2017/05/30(火) 19:27:03.66ID:9pAG49er666デフォルトの名無しさん
2017/05/30(火) 19:27:17.24ID:nt0s20eG667デフォルトの名無しさん
2017/05/30(火) 19:28:41.25ID:9pAG49er668デフォルトの名無しさん
2017/05/30(火) 19:33:16.73ID:Q5Vu0cbW669デフォルトの名無しさん
2017/05/30(火) 19:34:33.06ID:Q5Vu0cbW >>667
いえ違います
いえ違います
670デフォルトの名無しさん
2017/05/30(火) 19:40:27.25ID:27U6uUbR >>665
まあそんなところ。その他.net nativeだから、ライブラリもCLiじゃなくて普通のバイナリだから立ち上がった後の反応も全然違いますよ
まあそんなところ。その他.net nativeだから、ライブラリもCLiじゃなくて普通のバイナリだから立ち上がった後の反応も全然違いますよ
671デフォルトの名無しさん
2017/05/30(火) 19:42:58.08ID:n5zRqOxX UWPは起動は遅いだろ
くるくるばっかしてる
くるくるばっかしてる
672デフォルトの名無しさん
2017/05/30(火) 20:29:50.15ID:PLPV+qTT class ClassA
{
public override bool Equals(object obj)
{
if (this == obj)
{
return true;
}
else{
return false;
}
}
public override bool GetHashCode() { }
}
static void Main(string[] args)
{
ClassA a1 = new ClassA();
ClassA a2 = new ClassA();
bool b = a1.Equals(a2);
}
GetHashCodeなしだと警告がでるんですが、この場合GetHashCodeのコードはどう書けばいいでしょうか?
{
public override bool Equals(object obj)
{
if (this == obj)
{
return true;
}
else{
return false;
}
}
public override bool GetHashCode() { }
}
static void Main(string[] args)
{
ClassA a1 = new ClassA();
ClassA a2 = new ClassA();
bool b = a1.Equals(a2);
}
GetHashCodeなしだと警告がでるんですが、この場合GetHashCodeのコードはどう書けばいいでしょうか?
673デフォルトの名無しさん
2017/05/30(火) 20:48:23.05ID:nt0s20eG >>668
いやブラウザが開くのが嫌ならヘッドレスなドライバを使えばいいだろと言ってるだけなんだが
いやブラウザが開くのが嫌ならヘッドレスなドライバを使えばいいだろと言ってるだけなんだが
674デフォルトの名無しさん
2017/05/30(火) 20:53:25.27ID:sRXo2Yu8 >>672
コンストラクタで乱数生成してそれ使ったら?
コンストラクタで乱数生成してそれ使ったら?
675デフォルトの名無しさん
2017/05/30(火) 21:27:08.94ID:/DgUh2Dj >>672
とりあえず動けばいいだけなら
public override int GetHashCode() {
return 1;
}
でもいい
http://blog.masakura.jp/node/35
とりあえず動けばいいだけなら
public override int GetHashCode() {
return 1;
}
でもいい
http://blog.masakura.jp/node/35
676デフォルトの名無しさん
2017/05/30(火) 22:40:18.35ID:GhBAathx 便乗で質問だけど、オブジェクトの等価検査で使われる値が変化した時は
ハッシュコードも変えないとまずいよね?
ハッシュコードも変えないとまずいよね?
677デフォルトの名無しさん
2017/05/30(火) 22:43:36.35ID:kWERrntF >>676
変えなくてもハッシュテーブル系のパフォーマンスが落ちるだけ、それで使わんなら適当でいい
変えなくてもハッシュテーブル系のパフォーマンスが落ちるだけ、それで使わんなら適当でいい
678デフォルトの名無しさん
2017/05/30(火) 23:44:25.77ID:PLPV+qTT679デフォルトの名無しさん
2017/05/31(水) 00:37:06.72ID:lBEWYtx2 Formアプリで登録リスト一覧みたいなものを表示させたいんですが、DataGridViewみたいな感じにしたい時は何を使いますか?
680デフォルトの名無しさん
2017/05/31(水) 01:04:50.93ID:XimrquBh DataGridView
681デフォルトの名無しさん
2017/05/31(水) 01:46:52.64ID:zMZ0t3dm 意図が全く分からん
682デフォルトの名無しさん
2017/05/31(水) 02:01:48.65ID:toHF4qpw マジキチ
683626
2017/05/31(水) 05:04:07.36ID:zbjxMbd2684デフォルトの名無しさん
2017/05/31(水) 06:29:23.93ID:+xjBJZk4 >>683
対象のページを手動で開いてるってことか?
対象のページを手動で開いてるってことか?
685デフォルトの名無しさん
2017/05/31(水) 06:30:10.04ID:+xjBJZk4 >>683
対象のページを手動で開いてるってことか?
対象のページを手動で開いてるってことか?
686デフォルトの名無しさん
2017/05/31(水) 06:39:24.23ID:zbjxMbd2 すいません質問がかなり流れてしまってるのでもう一度書かせていただきます
seleniumを使ったプログラムなんですが
一度遷移先でタイムアウトが発生してしまうと
それ以降別ページへの遷移ができなくなってしまって困ってます
そもそもなんでタイムアウトを設定しているかというと
重たいページであっても一定時間すぎたら無条件で次ページへ遷移してほしいからです
どなたか解決方法がわかる方お答え頂ければと思います。
ソースは以下のような感じです
webDriver = new ChromeDriver();
// タイムアウトを2秒に設定
webDriver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2));
foreach (string UrlString in UrlList){
try
{
webDriver.Navigate().GoToUrl(UrlString); // 一度タイムアウトが発生すると次回以降遷移出来ない
}
catch (OpenQA.Selenium.WebDriverTimeoutException) { }
}
※UrlListには適当なURLがいくつかはいっております
度々すみませんがどうぞよろしくお願いします。
seleniumを使ったプログラムなんですが
一度遷移先でタイムアウトが発生してしまうと
それ以降別ページへの遷移ができなくなってしまって困ってます
そもそもなんでタイムアウトを設定しているかというと
重たいページであっても一定時間すぎたら無条件で次ページへ遷移してほしいからです
どなたか解決方法がわかる方お答え頂ければと思います。
ソースは以下のような感じです
webDriver = new ChromeDriver();
// タイムアウトを2秒に設定
webDriver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2));
foreach (string UrlString in UrlList){
try
{
webDriver.Navigate().GoToUrl(UrlString); // 一度タイムアウトが発生すると次回以降遷移出来ない
}
catch (OpenQA.Selenium.WebDriverTimeoutException) { }
}
※UrlListには適当なURLがいくつかはいっております
度々すみませんがどうぞよろしくお願いします。
687デフォルトの名無しさん
2017/05/31(水) 09:22:20.58ID:7bh7QxEt >>667
俺の時代はjpeg画像だったわ
俺の時代はjpeg画像だったわ
688デフォルトの名無しさん
2017/05/31(水) 10:03:22.46ID:bfprNrby お世話になります。
ある二次元のArrayListがありまして、
そのArrayListのある1行だけをまるまる別のListへコピーしたいのですが、
色々調べても書き方がわかりませんでした。
どのように書けば良いのでしょうか。
型は全要素がstringになっているという前提で良いです。
ある二次元のArrayListがありまして、
そのArrayListのある1行だけをまるまる別のListへコピーしたいのですが、
色々調べても書き方がわかりませんでした。
どのように書けば良いのでしょうか。
型は全要素がstringになっているという前提で良いです。
689デフォルトの名無しさん
2017/05/31(水) 10:10:44.40ID:bfprNrby 688ですが、一旦質問を取り下げます。
二次元のArrayListではなくて、string配列のArrayListでした。
頭の中を整理してからまた質問させていただきます。
二次元のArrayListではなくて、string配列のArrayListでした。
頭の中を整理してからまた質問させていただきます。
690デフォルトの名無しさん
2017/05/31(水) 11:11:33.20ID:YxSv7yTD Comparison<T>をIComparer<T>に変換する機能って用意されてないよねやっぱり
デリゲートは拡張メソッドも変換演算子も定義できないし、古典的なユーティリティークラスで
やるしかないのかな
デリゲートは拡張メソッドも変換演算子も定義できないし、古典的なユーティリティークラスで
やるしかないのかな
691デフォルトの名無しさん
2017/05/31(水) 11:41:32.37ID:vbSdRoYa そういうライブラリを探す手間が大変
高級言語ってそれが面倒
最初っから当てにしない方が精神的に良いのがわかってても
あるはずだと思って探す
高級言語ってそれが面倒
最初っから当てにしない方が精神的に良いのがわかってても
あるはずだと思って探す
692デフォルトの名無しさん
2017/05/31(水) 14:16:43.04ID:Z1ZTId/u >>690
ん?
public static IComparer<T> ToIComparer<T>(this Comparison<T> cmp)
って定義できたし呼び出しもできたけど VS2015
ん?
public static IComparer<T> ToIComparer<T>(this Comparison<T> cmp)
って定義できたし呼び出しもできたけど VS2015
693デフォルトの名無しさん
2017/05/31(水) 15:14:41.46ID:SYDtjKSh あれ、デリゲートの拡張メソッドって定義できないと思い込んでたけど勘違いか。
ジェネリックの制約か何かとごっちゃになってたかな
ジェネリックの制約か何かとごっちゃになってたかな
694デフォルトの名無しさん
2017/05/31(水) 15:17:45.21ID:YmmFUVDx そんなことするより普通にnew MyDelegateComparer(comparison)でいいだろ
変なごちゃ混ぜユーティリティクラスに依存するよりよっぽどマシ
変なごちゃ混ぜユーティリティクラスに依存するよりよっぽどマシ
695686
2017/05/31(水) 15:44:13.55ID:zbjxMbd2 ここでもだれもわからないんですね・・・
どうすればいいんだろう・・・
どうすればいいんだろう・・・
696デフォルトの名無しさん
2017/05/31(水) 15:53:10.88ID:RyxKgJ03 人生の無駄だと気付け
697デフォルトの名無しさん
2017/05/31(水) 19:20:18.69ID:EmdHwMni Null許容型の話ししてもいいですか?
698デフォルトの名無しさん
2017/05/31(水) 19:25:07.13ID:pBTVyMi8 駄目だと言ったらどうする!
699デフォルトの名無しさん
2017/05/31(水) 20:58:06.31ID:P4eqmxhP ASP.NET Identityって要するにユーザー情報やロール情報のリポジトリを注入するだけで認証処理が機能するようになるよって感じ?
700デフォルトの名無しさん
2017/05/31(水) 21:18:26.40ID:rluwNjli701デフォルトの名無しさん
2017/05/31(水) 21:36:24.45ID:PjLtCLFm いつも思うけど、こういう奴誰に向かって威張ってるつもりなのかね
っていうかそれがそんな偉そうに言うような話かw
馬鹿じゃねえのほんっと
っていうかそれがそんな偉そうに言うような話かw
馬鹿じゃねえのほんっと
702デフォルトの名無しさん
2017/05/31(水) 21:38:57.89ID:L1juUrGR >>700
arraylistを使うとどんなデメリットが有るの?
arraylistを使うとどんなデメリットが有るの?
703デフォルトの名無しさん
2017/05/31(水) 21:48:30.04ID:QtUbvsGm >>702
要素にどんな型でも放り込めてしまう
要素にどんな型でも放り込めてしまう
704デフォルトの名無しさん
2017/05/31(水) 21:50:42.84ID:rluwNjli705デフォルトの名無しさん
2017/05/31(水) 21:58:14.69ID:L1juUrGR >>704
すいません、ボックス化ってなんですか?
すいません、ボックス化ってなんですか?
706デフォルトの名無しさん
2017/05/31(水) 22:01:37.80ID:lqV8qj25 >>705
https://www.google.co.jp/search?client=android-asus&ie=UTF-8&source=android-browser&q=ボックス化&gfe_rd=cr&ei=b74uWdaaIabz8AeGtomgCg
https://www.google.co.jp/search?client=android-asus&ie=UTF-8&source=android-browser&q=ボックス化&gfe_rd=cr&ei=b74uWdaaIabz8AeGtomgCg
707デフォルトの名無しさん
2017/05/31(水) 22:16:20.70ID:rluwNjli >>705
ボックス化とボックス化解除 (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/boxing-and-unboxing
要は、値型をObject型に変換するとパフォーマンスが悪い。(その逆も)
ボックス化とボックス化解除 (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/boxing-and-unboxing
要は、値型をObject型に変換するとパフォーマンスが悪い。(その逆も)
708デフォルトの名無しさん
2017/05/31(水) 22:22:39.78ID:bj9JDDoN 以下のようなコレクションから、プロパティ「name」「no」が重複しているオブジェクトを全削除したいのですが
Linq等で短いコードで書けそうだなと思いながら、いざ考えてみるとやり方が思い浮かばず困っております
よろしくお願いします
public class TestStore
{
public string name { get; set; }
public int no { get; set; }
public int noctl { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<TestStore> list = new List<TestStore>();
list.Add(new TestStore { name = "hoge",no=2,noctl=999});
list.Add(new TestStore { name = "hoge", no = 2, noctl = 888 });
list.Add(new TestStore { name = "fuga", no = 1, noctl = 888 });
//プロパティ「name」「no」が重複するオブジェクトを削除する処理
//最終的にはname = "fuga"だけが残っているイメージです
}
}
Linq等で短いコードで書けそうだなと思いながら、いざ考えてみるとやり方が思い浮かばず困っております
よろしくお願いします
public class TestStore
{
public string name { get; set; }
public int no { get; set; }
public int noctl { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<TestStore> list = new List<TestStore>();
list.Add(new TestStore { name = "hoge",no=2,noctl=999});
list.Add(new TestStore { name = "hoge", no = 2, noctl = 888 });
list.Add(new TestStore { name = "fuga", no = 1, noctl = 888 });
//プロパティ「name」「no」が重複するオブジェクトを削除する処理
//最終的にはname = "fuga"だけが残っているイメージです
}
}
709デフォルトの名無しさん
2017/05/31(水) 22:24:50.71ID:ne18o3PY710デフォルトの名無しさん
2017/05/31(水) 22:27:06.86ID:L1juUrGR >>706、707
ありがとうございました。
ありがとうございました。
711デフォルトの名無しさん
2017/05/31(水) 22:27:16.87ID:ne18o3PY linq友の会スレでも行けよ
712デフォルトの名無しさん
2017/05/31(水) 22:42:27.39ID:P4eqmxhP713デフォルトの名無しさん
2017/05/31(水) 22:58:48.07ID:bj9JDDoN714デフォルトの名無しさん
2017/05/31(水) 23:01:16.13ID:QtUbvsGm >>709
( ´,_ゝ`)プッ
( ´,_ゝ`)プッ
715デフォルトの名無しさん
2017/05/31(水) 23:04:44.02ID:KM4I6X6v >>709
解らないなら黙ってスルーして良いんだぜ?な?
解らないなら黙ってスルーして良いんだぜ?な?
716デフォルトの名無しさん
2017/05/31(水) 23:18:52.50ID:PjLtCLFm 匿名型ってEqualsも自動実装されてるのか
知らんかった
知らんかった
717デフォルトの名無しさん
2017/06/01(木) 00:42:51.33ID:mM6BhS1s 改めて思ったけど、IEquatable<T>とIEqualityComparer<T>の関係って
なんだかわかりづらいな。
IEquatable実装したらGetHashCodeもオーバライドしろっていうのなら
IEqualityComparerだけあれば十分じゃないのか
なんだかわかりづらいな。
IEquatable実装したらGetHashCodeもオーバライドしろっていうのなら
IEqualityComparerだけあれば十分じゃないのか
718デフォルトの名無しさん
2017/06/01(木) 01:35:28.25ID:ludZVk+R コンパレータ渡さ(れ)なくても比較したいことは多いだろ
719デフォルトの名無しさん
2017/06/01(木) 01:39:00.91ID:ZOQStLdx >>717
IEquatable<T>は値型に実装するもので、参照型に実装する意味はないよ
一種のマーカーインターフェイスみたいなもんで、これがあることによって
値型のときEqualityComparer<T>.Defaultなどでボックス化を回避することができる
IEquatable<T>は値型に実装するもので、参照型に実装する意味はないよ
一種のマーカーインターフェイスみたいなもんで、これがあることによって
値型のときEqualityComparer<T>.Defaultなどでボックス化を回避することができる
720デフォルトの名無しさん
2017/06/01(木) 02:01:45.31ID:ZOQStLdx >>718
EqualsやGetHashCodeはObjectのメソッドなんだから常に等値比較は可能なはずで、なのになんでインターフェイスが必要なのかが質問者の疑問なんじゃないの?
その疑問はもっともで、実際、非ジェネリックなIEquatableって存在しないでしよ
等値比較できることを示すというよりは、型限定なEqualsの実装を持ってることを保証するためのインターフェイスなんだよ
EqualsやGetHashCodeはObjectのメソッドなんだから常に等値比較は可能なはずで、なのになんでインターフェイスが必要なのかが質問者の疑問なんじゃないの?
その疑問はもっともで、実際、非ジェネリックなIEquatableって存在しないでしよ
等値比較できることを示すというよりは、型限定なEqualsの実装を持ってることを保証するためのインターフェイスなんだよ
721デフォルトの名無しさん
2017/06/01(木) 02:23:40.58ID:ldik7UUC722デフォルトの名無しさん
2017/06/01(木) 02:31:26.88ID:5sVH+pSJ 煽るために産まれたのか悲しい子よ
723デフォルトの名無しさん
2017/06/01(木) 02:33:53.74ID:EL41vKcx724デフォルトの名無しさん
2017/06/01(木) 03:49:27.04ID:aKp9LbeA C# で 6乗したら100になる数字を求める方法ってありますか?
で、プログラムで 6とか 100の部分を可変で入れ込む関数を作りたいのです。
よろしくお願い致します。
で、プログラムで 6とか 100の部分を可変で入れ込む関数を作りたいのです。
よろしくお願い致します。
725デフォルトの名無しさん
2017/06/01(木) 04:27:00.57ID:EL41vKcx >>724
単に Math.Pow(100, 1/6) でいいと思いますが
単に Math.Pow(100, 1/6) でいいと思いますが
726デフォルトの名無しさん
2017/06/01(木) 04:45:54.50ID:ldik7UUC 数学的には指数と対数の関係式とか言うとこだな
727デフォルトの名無しさん
2017/06/01(木) 05:26:56.81ID:ldik7UUC >>725
累乗根ってそれで行けるんだ
累乗根ってそれで行けるんだ
728デフォルトの名無しさん
2017/06/01(木) 06:53:06.02ID:rOL2FVf4 >>724
そんな数字求めて何に使う?
そんな数字求めて何に使う?
729デフォルトの名無しさん
2017/06/01(木) 07:01:20.29ID:ldik7UUC 桁数に合わせた表示領域の計算とかするのに必要だった気がする
730デフォルトの名無しさん
2017/06/01(木) 08:08:40.56ID:YbQp1MN1731デフォルトの名無しさん
2017/06/01(木) 09:24:36.49ID:ABXdazBj 音つくるんかな
732デフォルトの名無しさん
2017/06/01(木) 10:11:36.56ID:ZOQStLdx 工学系なら普通にあるだろうけどさすがに724は理系ではなさそうだし
733デフォルトの名無しさん
2017/06/01(木) 10:43:13.05ID:RLRug1po734デフォルトの名無しさん
2017/06/01(木) 11:01:21.36ID:sVwWAQG0 クラスの中にスタックを持たせたい場合、どう書くのが正しいんでしょうか。
class Solution {
private Stack<char> st = new Stack<char>();
Solution() {
}
public void pushCharacter(char c) {
st.Push(c);
}
場当たりでこんな書き方をしましたが、とても汚く感じます。
class Solution {
private Stack<char> st = new Stack<char>();
Solution() {
}
public void pushCharacter(char c) {
st.Push(c);
}
場当たりでこんな書き方をしましたが、とても汚く感じます。
735デフォルトの名無しさん
2017/06/01(木) 11:05:21.05ID:MxLX2EtY それを汚く感じる完成が分からん
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 今年の漢字 [ぐれ★]
- 【おこめ券】物価高対策の“おこめ券”全米販は1枚477円で販売へ 鈴木農水大臣「国民の皆様に活用いただきやすいよう工夫いただいた」★2 [ぐれ★]
- 【麻雀】プロ雀士の岡田紗佳さんが勝訴、点数計算めぐる発言は「違法とは言えず」 大宮簡裁 [征夷大将軍★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★5 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★3 [冬月記者★]
- ハリウッド実写版『ストリートファイター』初映像解禁 リュウ&春麗らのビジュアルも公開 [muffin★]
- 虫歯の味ってわかるよね
- メトロイドはゼルダやピカチュウにはなれないのだよ
- 参政党議員「クジラの肉を食べないのは流通や販路に問題があるからだよね?」 [592058334]
- VTuber叩きが大流行してる理由、1枚の画像で解説される…!! [858219337]
- __トランプ、G7に代わる「Core 5」構想、米 中 露 印 日をまとめる巨大枠組み、世界秩序の再編につながる可能性 [827565401]
- 【超速報】自転車がパンクした・・・・・・・・・・・・ [793051416]
