C♯相談室 Part31

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2006/06/06(火) 21:58:44
public static List<T> OverlapToSingle<T>( List<T> list )
{
 List<T> newList = new List<T>;

 foreach( T t in list)
 {
  if( !newList.Contains( t ) )
   newList.Add( t );
 }

 return newList;
}
953デフォルトの名無しさん:2006/06/06(火) 22:09:07
>>952
O(N^2) だお
クローンしてからソートしてリストぶち込んだ方がいくね
954デフォルトの名無しさん:2006/06/06(火) 22:18:10
出力結果がソート済みなのが難点になりうるな
955948:2006/06/06(火) 22:38:31
public static List<T> OverlapToSingle<T>( List<T> list )
{
List<T> tmpList = new List<T>(list);
tmpList.Sort();

List<T> newList = new List<T>();

T tmpT = default(T);
foreach (T t in tmpList)
{
if (t.Equals(tmpT) == false)
{
newList.Add(t);
tmpT = t;
}
}

return newList;
}

sortを組み込むとこんな感じになるのか。
ソート済みになってしまうことはとりあえず問題にならないので大丈夫ですね。
ジェネリックを使う気力が沸いてきた。THX!
956デフォルトの名無しさん:2006/06/06(火) 22:44:00
>>955
入力の list が List<int> で中身が 0,1,2 だとしたら
出力は 1,2 になる予感
957デフォルトの名無しさん:2006/06/06(火) 23:20:01
T が参照型なら参照型で、null が入っていたときに例外の予感
958948:2006/06/07(水) 12:55:41
確かにそうだな'`,、('∀`) '`,、 
959デフォルトの名無しさん:2006/06/08(木) 16:47:43
C#とJavaなどの他言語との連携方法がわかりません。
Javaで出力したテキストファイルをC#でよみこませたいのですが・・・・
よろしくおねがいします。
960デフォルトの名無しさん:2006/06/08(木) 16:50:16
いや、テキストファイルなら何で出力しようがテキストファイルだろ。
せいぜいエンコーディングに気を配る程度だ。
961デフォルトの名無しさん:2006/06/08(木) 16:55:34
>>960
私書き方が悪かったかもしれません。
一度にそれらの処理をやりたいのですが、バッチ処理しか無いのでしょうか?
JavaとC#のプログラムが常に起動していて、処理に必要な機能をそれぞれの言語で
分担して行うという複雑なものなんですが。
バッチ処理で対応しきれるのかどうか不安です。
962デフォルトの名無しさん:2006/06/08(木) 17:17:17
>>961
.net java間だとまともに使えるのはソケットくらいかな。Web Serviceでもいいが互換性がどうだろう。
あとはJ#(笑)を使う。
963デフォルトの名無しさん:2006/06/08(木) 17:17:40
どっちかでファイル監視するか
964デフォルトの名無しさん:2006/06/08(木) 17:26:50
メッセージでやれるんじゃない?
965デフォルトの名無しさん:2006/06/08(木) 17:27:27
Java Language Conversion AssistantでJavaをC#に変換する
966デフォルトの名無しさん:2006/06/08(木) 18:02:59
DDEは?
967デフォルトの名無しさん:2006/06/08(木) 18:06:35
>>961 とりあえず、バッチ処理であるか否かと通信方法は分けて考えたほうがよろしいんではないかと
968デフォルトの名無しさん:2006/06/08(木) 18:34:00
>>961
ファイル経由でのテキストの受け渡しなんて簡単なこともわからないのに、
そんなに「複雑なもの」がよく設計できたなぁ・・・・
データの受け渡しのとこも設計したんだろうから、ちゃんとそれに従えば?
969デフォルトの名無しさん:2006/06/08(木) 21:41:43
ちゃんと設計出来てたら
こんな質問しないだろ。
970デフォルトの名無しさん:2006/06/09(金) 00:32:56
メモリマップドファイルとかはどうだろう
Java で使えるかは知らないが
971デフォルトの名無しさん:2006/06/09(金) 00:43:27
JNIってなくなったの?APIつかえりゃいけるでしょ
972デフォルトの名無しさん:2006/06/09(金) 00:53:14
スプリットコンテナーのパネルの上にグループボックスはっつけて
そのうえテキストボックスなどのコントロールがある というリサイズ可能なフォームでの質問です

したいことは
ユーザがフォームを小さくしたとき、グループボックス上のコントロールが
隠れてしまう大きさにされたらパネルにスクロールバーを表示する

ということなんですが、グループボックスのDockプロパティをfillにすると
パネルのAutoScrollがTrueでもスクロールバーが出てこないのですが
コントロールの配置方法等が間違っているのでしょうか?
お願いします
973デフォルトの名無しさん:2006/06/09(金) 10:49:13
HashTableの初期化を、現在
HashTable hash = new HashTable();
hash.Add("Key1", 1);
hash.Add("Key1", 1);
      ・
      ・
のように書いていますが、 Perlのように
HashTable hash = {
  "Key1" -> 1,
  "Key2" -> 2,
};
のように、スマートに書けないでしょうか?
974デフォルトの名無しさん:2006/06/09(金) 10:55:03
hash["Key1"]=1
とかってかけないんだっけ?
975デフォルトの名無しさん:2006/06/09(金) 10:58:29
コレクションの構築初期化子は C#3.0 からだねー
976デフォルトの名無しさん:2006/06/09(金) 11:12:09
っていうか、static で作成したいんです。
977デフォルトの名無しさん:2006/06/09(金) 11:12:59
>>975
あー、でつか・・・ どうもでした。
978デフォルトの名無しさん:2006/06/09(金) 11:22:20
少なくとも今はstaticなコンストラクタでやるしかないかな。
979デフォルトの名無しさん:2006/06/09(金) 16:12:07
すんません。
今クラスのシェイプアップをしてるんですけれども、
インスタンスにしたときの占有メモリサイズを計る方法って
ありますか?
980デフォルトの名無しさん:2006/06/09(金) 16:23:16
そのクラスのインスタンス何万個作るつもりだ……
パフォーマンスカウンタ使えば?
981デフォルトの名無しさん:2006/06/09(金) 19:19:18
それは意外に難しい。
982デフォルトの名無しさん:2006/06/09(金) 20:38:09
stringの文字列中の特定の文字列を置き換える動作は
string.Replace

Regex.Replace
だったらstring.Replaceの方が速くておすすめですか?
それともstring.Replaceは内部でRegexしてたりしますか?
983デフォルトの名無しさん:2006/06/10(土) 01:57:47
どういう発想でそう思うんだよ。
984デフォルトの名無しさん:2006/06/10(土) 02:02:27
わたしはおすすめです。
985デフォルトの名無しさん:2006/06/10(土) 07:33:00
>>973
どうしてもというのならば。

private class HashtablePrivate : Hashtable {
 public HashtablePrivate(object[][] values) {
  foreach(object[] value in values)this.Add(value[0], value[1]);
 }
}

private static Hashtable values = new HashtablePrivate(new object[][] {
 new object[]{ "1", "value1" },
 ...
});

あまりお勧めはしない。
986デフォルトの名無しさん:2006/06/10(土) 08:53:26
BeginInvoke/EndInvokeメソッドを持つ最も抽象的なクラスか
インターフェースは何?
Delegate型がもっていないからわけわかんね。
object AsyncResult.AsyncDelegateからEndInvokeを呼びたいんだけど
固有の型でキャストしたくない。リフレクション使うのがベスト?
987デフォルトの名無しさん:2006/06/10(土) 09:07:47
ISynchronizedInvoke?
988デフォルトの名無しさん:2006/06/10(土) 09:22:29
デリゲートをそいつでキャストすることはできないっぽいです。
>ISynchronizedInvoke
989デフォルトの名無しさん:2006/06/10(土) 10:36:52
コンパイラが自動的につくるんじゃなかったっけ?
BeginInvoke/EndInvoke
990デフォルトの名無しさん:2006/06/10(土) 10:54:27
これうんこな仕様だよね。
ちがうデリゲート型、ジェネリックの中で実行したいのにこのせいでやりにくいし。
もうあぼかど。
991デフォルトの名無しさん:2006/06/10(土) 11:02:02
デリゲートの実行は DynamicInvoke 使えばいいんだからどうでも良いが、型制約に使えないのが痛すぎる。
992デフォルトの名無しさん:2006/06/10(土) 13:29:46
共通のシグネチャには出来ないんだから
まあ仕方ないんじゃないの?
DynamicInvokeの非同期版があるに越したことはないが。

むしろ普通にリフレクションで実行するときの
糞仕様をなんとかしてほしい。
993デフォルトの名無しさん:2006/06/10(土) 13:37:12
> むしろ普通にリフレクションで実行するときの
> 糞仕様をなんとかしてほしい。

どんな仕様をお望みだね
994デフォルトの名無しさん:2006/06/10(土) 17:07:01
何も贅沢は言わんよ。
勝手に例外をラップしたりとか、
要らんことをしなければそれでいい。
995デフォルトの名無しさん:2006/06/10(土) 17:13:10
ああ、例外ラップはうざいねー
デバッグやりづれぇ
んで結局、EndInvokeするにはリフレクションしかないってことで
いいでしょか?
996デフォルトの名無しさん:2006/06/10(土) 17:36:03
byteの配列をstringに変換する方法を教えてください
997デフォルトの名無しさん:2006/06/10(土) 17:38:59
Encoding.GetString だったか
998996:2006/06/10(土) 17:51:32
ありがとうございます。さっそく探します。
999デフォルトの名無しさん:2006/06/10(土) 18:52:27
フレームワークがあること以外での
C++とC#の違いって何ですか?
1000デフォルトの名無しさん:2006/06/10(土) 18:54:58
時間切れですにゃ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。