0

DICOM 画像のリストがあり、Z オーダーで並べ替えたいと考えています (画像内の属性です)。

リストに画像を追加するための私のコードは次のとおりです

  private List<DicomImage> img = new List<DicomImage>();

   for (int i = 0; i < imagenes.Count; i++) //imagenes is a variable that holds the number of images (coming from an OpenFileDialog)
         {

            img.Add(new DicomImage(imagenes[i]));
          }

では、Z で昇順に並べるにはどうすればよいでしょうか。

次のように入力するだけで Z アトリビュートにアクセスできるとします。

int Z=img[i].Z;

4

3 に答える 3

0

img が の場合List<T>、メソッドを使用できますSort(Comparison<T>)

img.Sort((img1, img2) => img1.Z.CompareTo(img2.Z));

これは、2 つの画像を比較するときに、結果の Z 値の比較に戻るだけのこの関数を呼び出すことを sort メソッドに伝えているだけです。

于 2013-08-05T18:02:40.837 に答える
0

John skeetsの回答へのコメントに基づいて構築すると、画像のコピーを節約するよりパフォーマンスの高いバリアントがここにあります

var dicomImages = ofdmulti.FileNames.Select(filename => new DicomImage(filename))
                                    .OrderBy(image => image.Z);

foreach (var image in dicomImages)
{
    // Do Something usefull
}
于 2013-08-06T06:01:45.053 に答える