如何使用另一个数组和THAT数组中存在的值在数组中找到索引?

joh*_*ams 2 c# arrays

我有一个#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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在该类中创建了两个数组:

    private MemberData[] memarray1 = new MemberData[10000];
    private MemberData[] memarray2 = new Memberdata[10000];
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我使用这两个数组和值更改等一堆东西.成员的名称或活动状态可能会改变,这会导致ararys变得不同.

最终我需要比较它们,以便根据第一个结果被踢出来对另一个进行比较.

例如,基于应用程序的内容,第一个数组中的成员被取消激活,我需要更新数组2以取消激活该相同的成员.

我试图使用一些数据库设计philosphy与int CK(设计密钥),以便能够快速查找基于CK的其他数组中的条目.

既然我无法弄明白,我不得不求助于使用这样的嵌套for循环,这很糟糕:

        foreach (Memberdata md in memarray1)
    {
        foreach (Memberdatamd2 in memarray2)
        {
            if (md.ck = md2.ck)
            {
                //de-activate member
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?我只想在第一个数组中获得CK值时,根据CK在第二个数组中找到索引.

关于结构的任何其他提示或建议也将受到赞赏.我应该使用除数组之外的东西吗?我如何用列表完成同样的事情?

谢谢!

Eri*_*ert 6

我应该使用除数组之外的东西吗?

是.不要使用数组; 它们很少使用正确的数据结构.

我如何用列表完成同样的事情?

列表只是稍微好一些.它们不支持您需要的高效按键查找操作.

它听起来像你想要的而不是两个数组,Dictionary<int, MemberData>其中两个是关键的ck.