作者:难耐五更寒 | 来源:互联网 | 2022-12-07 10:22
我有一个#class类看起来像这样:
public class MemberData
{
public int meme_ck;
public string meme_name;
public bool meme_active;
public MemberData(int ck2, string name2, bool active2)
{
meme_ck = ck2;
meme_name = name2;
meme_active = active2;
}
}
我在该类中创建了两个数组:
private MemberData[] memarray1 = new MemberData[10000];
private MemberData[] memarray2 = new Memberdata[10000];
在我的应用程序中,我使用这两个数组和值更改等一堆东西.成员的名称或活动状态可能会改变,这会导致ararys变得不同.
最终我需要比较它们,以便根据第一个结果被踢出来对另一个进行比较.
例如,基于应用程序的内容,第一个数组中的成员被取消激活,我需要更新数组2以取消激活该相同的成员.
我试图使用一些数据库设计philosphy与int CK(设计密钥),以便能够快速查找基于CK的其他数组中的条目.
既然我无法弄明白,我不得不求助于使用这样的嵌套for循环,这很糟糕:
foreach (Memberdata md in memarray1)
{
foreach (Memberdatamd2 in memarray2)
{
if (md.ck = md2.ck)
{
//de-activate member
}
}
}
有一个更好的方法吗?我只想在第一个数组中获得CK值时,根据CK在第二个数组中找到索引.
关于结构的任何其他提示或建议也将受到赞赏.我应该使用除数组之外的东西吗?我如何用列表完成同样的事情?
谢谢!
1> Eric Lippert..:
我应该使用除数组之外的东西吗?
是.不要使用数组; 它们很少使用正确的数据结构.
我如何用列表完成同样的事情?
列表只是稍微好一些.它们不支持您需要的高效按键查找操作.
它听起来像你想要的而不是两个数组,Dictionary
其中两个是关键的ck
.