ふらっと C#,C♯,C#(初心者用) Part134
■ このスレッドは過去ログ倉庫に格納されています
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part133
http://mevius.5ch.net/test/read.cgi/tech/1510056685/
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured >>180
多くなるならJSON Linesの方が効率いいよ
ログとかで普通に使われるファイル形式
CSVはスキーマが変わると面倒なんだよな 今時csvはなんちゅう本中華
レガシーへ(から)の接続ならしょうがないが >>202
いいアイディアだな
ただこのスレはこのまま残して
初心者雑談用として新しくスレが欲しいな そんなことしても質問スレで雑談が始まるのは目に見えてるやん... 議論スレがあるじゃん
脱線しそうなら自発的に移動して
ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1469538912/ 無理でしょ
どこまでが質問の答えなのか雑談なのか区切りが曖昧だし >>199
ごめんなさい。
今日の朝、靴下にその言葉入ってたら読んでたよサンタさん! >>207
>>199みたいに自覚ない奴がいる限り誘導しても無駄でしょ
まあXMLに親でも殺されたんだろうな w ボクのおとうさんは、XMLというやつに殺されました
俺はWPFだなw 初心者なので教えてください。
xml ならDataSet.ReadXml()でお手軽に扱えてたんですが、jsonはどう読み込んで使うのですか?
ちょっとググったら、jQueryとか、webっぽいのが目についたのですが、ローカルexeでも使えるんでしょうか? >>211
NuGetでJson.NETを拾ってくる UWPならWindows.Data.Jsonが使えるのでダウンロードしなくてもよい XML最高って言う奴がいるけどDTDとかちゃんと理解して使ってるのか疑問
俺はさっぱりわからなないので放置してる
XMLは賢い人が集まって俺って賢いだろを連発してクソ企画になったって本で読んだ XMLは同じようなものが大量に並んでてゲシュタルト崩壊?してタグがタグに見えなくなる jsonの問題はコメントだな、一応使える場合もあるけど本式はコメント使えない
ググると作者が原理主義者でどうにもならんようだ >>218
じゃあ折角だし
ListviewItemCollectionやCollection<T>をソートするいい方法ってなんかある?
別インスタンスにするのはNG
並び替えたやつをループしてRemoveとAddを繰り返しやる方法以外思いつかなかった いいってのは何がいいんだ?
メモリ効率か?
ソート速度か?
コーディングの手軽さか? >>219
並び替えたやつをループとは?
どうやって並べ替えた? そもそもICollection<T>に要素の並び順なんてものはない
IEnumerable<T>として列挙されるときの順番ならOrderBy
その順番を使い回したいならToArray >>219
分かりづらかったんで質問を変える
private readonly Collection<string> hoge
のhogeを文字列順にするとき
foreach(var s in hoge.orderby()){
hoge.Remove(s);
hoge.Add(s);
}
でできたんだけど理由があってaddは使いたくなかった
add使わないで並び替えってできる? Comparison書いてSortすりゃいいのでは
この手の問題は並び順のルールの方に重点が置かれる、並び替え方なんてこの際どうでもいい Collection<string>がICollectionの間違いならToListして代入するだけじゃないの? >>225
Sortがあったら楽だったんだけどね
>>226
https://msdn.microsoft.com/ja-jp/library/ms132397(v=vs.110).aspx
読み取り専用だから代入できない
ICollectionは継承してるクラス
ToListした時点で別インスタンスだからそれに対してSortしても意味無い
>>223
気持ちは分かるんだけど使ってる先を修正できずこちら側で並び替えないといけない状況があってな
インデクサー定義されてるんだから並び替えできても良さそうなのに見つけられなかった point(1,1)
を
axis(1,1)
に正規表現で置換したいのですがどうすればいいでしょうか?
visualstudio2015です point\({.*}\)
axis(\1)
とやっても出来ないので悩んでいます >>227
なるほどw
でもreadonlyにこだわる必要本当にあるの? 自分でソートロジックかいて要素入れ替えていけば良いだけ
おれならそうとうな量でない限り、ソート済みの別インスタンスと入れ替えるがな >>224
理論的に考えてインデクサを持たないICollectionをAdd無しに内部での並び順を変えるのは不可能だろ もし元インスタンスにさわりたくないなら、元のコレクションとは別に
ソートした結果のインデックス位置をもつコレクションつくってそっちから引っ張るけど >>232
IListも継承してるクラスだからインデクサ持ってんじゃないかな
元インスタンスに触りたくないというよりは元インスタンスにも反映させたい
別クラスで作られたオブジェクトのインスタンスを渡してもらっていて、それをreaonlyにセットこっちのを並び替えたら同じ様に元のデータも並び替えられるって感じ
ここら辺の構成は弄れない
本当に勘弁してほしいわ >>235
ICollectionはIEnumerableしか継承してないんだがIListも継承してるとは? >>237
今議題にしてるのがCollection<T>クラスだからそっちの継承をみてくれ >>236
マイクロソフトのドキュメントみて\1を$1にしたらできた >>238
すまんな
じゃあ先頭から参照書き換えていけばいいのでは? >>239
(にして$にしたらできました!有難う御座います! なるほど、Add、Removeじゃなくてhoge[i]=s みたいな感じで順に設定し直せばいいのか
多分>>233も同じことを言ってたんだろうけど別の意味で捉えてた
次からそうするわ 車輪の再発明感全開だなw
public static class Extensions
{
public static void CopyTo<T>(this IList<T> src, IList<T> dst)
{
int count = Math.Min(src.Count, dst.Count);
for (int i = 0; i < count; i++)
dst[i] = src[i];
}
public static void Sort<T, TKey>(this IList<T> x, Func<T, TKey> keySelector)
{
x.OrderBy(keySelector).ToList().CopyTo(x);
}
} C#はメモリ不足でコンパイルできないことはありますか? >>249
該当するコンパイラのスレで聞いてください >>249
絶対にないとはいえないけど、そもそもそんなマシンじゃ開発なんてできやしない。 >>249
その前にVSが重すぎてまともに動かないから大丈夫 >>252
コンパイルとVisual Studioは別問題 Windowsアプリケーションにおいて、ソースファイルのフォルダ分けはどのようにされていますか? 自前のクラスに、作成済みオブジェクトを探してオブジェクトを返すメソッドを作るにはどうすれば良いんですか?
Xamarin Androidにいうfindbyname()、UnityでいうGameObject.Find<T>()のようなものを自前のクラスにもつけたいんですが・・・・ >>256
Dictionaryに名前でオブジェクト登録という方法があるけど
わざわざそんな無意味なことをする意味が分からない
UWPやWPFやwindows forrmsでは
xamarinのfindbynameみたいなものわざわざ使わないでもいいのに >>254
コンパイルの質問なのにVisual Studioの問題にすり替えるのが不適切だと言ったまで データにメソッドをチェーンするのが関数型言語の特徴なのかなと解釈してるんですけど、c#は関数型言語も内包してると考えて良いのでしょうか?
で、F#は関数型専用言語という位置づけで >>262
F#は関数型専用ではなく、マルチパラダイム >>263
そうなんですか
となるとc#にかなり接近してる気がするのですが、F#がなぜ作られたか不思議です >>262
まず大前提としてメソッドチェーンと関数型プログラミングは何にも関係ない
下手にオブジェクト指向とのマルチパラダイムから入るより、まずはML系とかHaskell, Schemeみたいなちゃんとした関数型言語を触って特徴を掴むのがいいと思う 関数型言語やるとコードが綺麗になるから目的なんか関係なく一度は経験するべき >>249
>>251
パソコンのメモリは十分に余裕があると仮定してプログラム的な容量の限界が知りたいです。
C#は無限にコードが書きこめるということですか? C#言語にはソースコードサイズの限界なんて定義されてない
むしろ定義されてる言語って存在するの? >>270
無限にコードが書き込めるって、具体的にどういうことを想定してるの? コンパイル可能なソースコードサイズがコンピュータのメモリ資源に依存するコンパイラがあるってことじゃね >>271
VB6は数百万行で限界が来てコンパイルできなくなりました。
>>272
コードを千万行単位で書き込んでも大丈夫か知りたいです。 適宜プロジェクト分ければ楽勝だろ
VS自体のソースとかだと余裕で超えてるだろうし >>271
コンパイラーの上限値を明記してる処理系はあるけどc#の見つからんな。
何処かにあるはず。 コンパイラエラーCS1033の記述に
/debugオプションを指定した場合は16,707,556行。しない場合は268,435,454行って書いてある。
1つのソースコードファイルにそんな行数を想定してるんだw 1ファイルの行数の制限はCで見たことあるけど
プロジェクトやモジュール単位での総行数の制限は見たことないな
本当にそんなのあるの? >>274
そんなサイズのVB6なんて見たことないw 約1600万行のcsファイル開きたくないな
どう考えてもGodClassですがな Visual Studioのエディタがハングするだろ >>267
lisp/scheme は関数型にはいりますか? >>274
> コードを千万行単位で書き込んでも大丈夫か知りたいです。
試せばいいだけ >>284
何をもって入らないにしたいのかわからないくらい入るじゃん >>288
lisp って太古の昔から存在しているじゃない、これに比肩するのは cobol とか fortran とか、位に
そんな昔に関数型が存在できたのか? コンパイラなんて自分で書いたことも理論勉強したこともないけど、
扱える識別子の数の上限とかは当然あるんだろうなあ
もっとも、恐らく全部がオンメモリで動いてるはずのインテリセンスの限界ですら
普通のプログラマはたぶん経験してないはずで、必要ならディスクも使えるはずの
コンパイラの限界なんて実用上は無限と想定してよいんじゃないかしら 言語を二次コードとして
一次コードから生成する形のプログラムを組んだらそういう限界を超えやすいかもしれんな >>289
実装として問題ない性能が出たかは別として、関数型パラダイム自体は大昔からある
ラムダ計算も提唱された時期はチューリングマシンとあまり変わりなかったはず
関数型なんて要は文より式を多用する書き方ってくらいの認識でいいよ
初期Lispだって十分関数型といえる >>256
>作成済みオブジェクトを探してオブジェクトを返す
という点だけで反応するけど、シングルトンのオブジェクトを共有したいみたいな話なら
MEFとかUnity(ゲームじゃない方)とかのDIコンテナ利用すればいいんじゃないかな。 javascriptで生成後の値をスクレイピングして取得するにはどのような方法がおすすめですか? >>295
普通にヘッドレスブラウザ & Seleniumでいいよ
今ならchromeやfirefoxがヘッドレス対応してる
C#はSeleniumライブラリの出来がイマイチなのでpythonやその他の言語を使ったほうがいいだろうね >>296
ベースはC#で行きたい場合、スクレイピングはpythonで作って、dllにでもして呼び出すイメージでしょうか? C#でもSeleniumは動かせるよ
おすすめはしないってだけ python使うならモジュールではなくサービスにしたほうがいいだろうね ■ このスレッドは過去ログ倉庫に格納されています