C# 在C.NET中订购一个数组
我有一个DICOM图像列表,并希望按Z顺序排序,这是图像中的一个属性 下面是我将图像添加到列表中的代码C# 在C.NET中订购一个数组,c#,list,C#,List,我有一个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 OpenFile
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属性:
intz=img[i].Z 假设imagenes是某种IEnumerable,我会使用LINQ来处理整个问题:
var dicomImages = imagenes.Select(original => new DicomImage(original))
.OrderBy(image => image.Z)
.ToList();
假设imagenes是某种IEnumerable,我会使用LINQ来处理整个问题:
var dicomImages = imagenes.Select(original => new DicomImage(original))
.OrderBy(image => image.Z)
.ToList();
如果img是一个列表,则可以使用该方法
这只是告诉排序方法,在比较两个图像时,调用此函数,该函数将恢复为比较结果的Z值。如果img是一个列表,则可以使用此方法
这只是告诉排序方法,在比较两个图像时,调用此函数,该函数将恢复为比较它们的Z值以获得结果。基于John skeets答案的注释,这里有一个性能更高的变体,它可以节省复制图像的时间
var dicomImages = ofdmulti.FileNames.Select(filename => new DicomImage(filename))
.OrderBy(image => image.Z);
foreach (var image in dicomImages)
{
// Do Something usefull
}
在对John skeets答案的评论的基础上,这里有一个性能更高的变体,它可以节省复制图像的时间
var dicomImages = ofdmulti.FileNames.Select(filename => new DicomImage(filename))
.OrderBy(image => image.Z);
foreach (var image in dicomImages)
{
// Do Something usefull
}
你现有的代码对我来说很奇怪-你确定你不是说我