我有一个数组,其值位于有意义的索引处。如何判断某个特定元素是否存在某个值?
Array.Exists()是我发现的最接近的,但是对于我想要的,它看起来太复杂了,所以我很想知道它是否真的是最好的方法。
更新
好的,我有一个对象数组:
ImageGroup[] Images;元素的索引对应于该项目的一个特征。在这种情况下,索引引用原始图像文件名中的值。当我遇到一个文件名时,我想要检查一个元素是否存在于相应的索引中,如果没有,则创建一个元素。
所以我想知道Images[someInt]是否存在。
发布于 2011-02-01 22:02:41
已更新
使用上一次更新时,这看起来更像是字典(除非您按数字顺序,而不是填充了"1,2,5“,但3,4不存在,需要创建)。如果这是索引可能跳过的内容,我建议使用字典:
Dictionary<Int32,Image> images = new Dictionary<Int32, Image>();
// populated previously
Int32 needle = GetIndexOfImage(newImage);
if (!images.ContainsKey(needle))
images.Add(needle, newImage);然后,完成填充之后,可以按索引以下列方式重新引用该项:
images[specificIndex]再一次,您也可以使用以下方法检索存储的所有元素:
images.Values一些资源:
发布于 2011-02-01 22:04:55
第一次答复:
if (a[index] == interesting) ....编辑之后:
int index = GetIndexFromFilename(filename);
// if (Images[index] != null && Images[index] == interesting) ....
if (Images[index] == null)
Images[index] = CreateImage(filename);但是您可能应该使用一个Dictionary<string, Image>并使用文件名作为键。
发布于 2011-02-01 22:18:25
听起来你要找的是字典的功能。如果您发布了如何填充数组以及希望如何对其进行索引,这将是非常有帮助的。据我所知,这就是我要实现的.
Dictionary<SomeEnum, ImageGroup> images = new Dictionary<SomeEnum, ImageGroup>();
foreach(SomeEnum enumValue in Enum.GetValues(typeof(SomeEnum)))
{
ImageGroup group = BuildImageGroup();
images.Add(enumValue, group);
}然后你就可以:
...
if(images.ContainsKey(SomeEnum.SomeValue))
return images[SomeEnum.SomeValue];
else
return DoSomethingFancy();如果单个枚举值(冲突)有多个映像组,则可以在字典中使用ImageGroups集合,如下所示:
Dictionary<SomeEnum, ImageGroup[]>https://stackoverflow.com/questions/4868448
复制相似问题