C# 检查DirectoryEntry是否是Active Directory C中组的最后一个#

C# 检查DirectoryEntry是否是Active Directory C中组的最后一个#,c#,foreach,active-directory,directoryentry,groupprincipal,C#,Foreach,Active Directory,Directoryentry,Groupprincipal,您好,我需要检查目录条目是否是AD中组的最后一个。我不知道为什么,但我老板说他想要一个留言箱。下面的方法只是我大项目的一小部分。它是干什么的?我在AD中获取组中的所有用户。每个用户都保存在目录条目中。然后我打电话给其他人。这与这个问题无关,请参见“如果de,则执行任务” 我不知道如何获取最后一个元素,这就是为什么我要这样做: var lastelement = users.LastElement; 在方法上 private void Abgleich() { l

您好,我需要检查
目录条目
是否是AD中组的最后一个
。我不知道为什么,但我老板说他想要一个留言箱。下面的方法只是我大项目的一小部分。它是干什么的?我在AD中获取组中的所有用户。每个用户都保存在
目录条目中。然后我打电话给其他人。这与这个问题无关,请参见“如果de,则执行任务”

我不知道如何获取最后一个元素,这就是为什么我要这样做:

var lastelement = users.LastElement;
在方法上

    private void Abgleich()
    {
        log.Debug("Abgleich in ActivDirectory aufgerufen");
        using (var context = new PrincipalContext(ContextType.Domain, Properties.Settings.Default.Servername, Properties.Settings.Default.Container))
        {
            using (var group = GroupPrincipal.FindByIdentity(context, Properties.Settings.Default.ECADGruppe))
            {
                if (group == null)
                {
                    log.Error("Group does not exist");
                }
                else
                {
                    var users = group.GetMembers(true);

                    //Pseudo Code
                    var lastelement = users.LastElement;
                    //End Pseudo Code

                    foreach (UserPrincipal user in users)
                    {
                        DirectoryEntry de = (user.GetUnderlyingObject() as DirectoryEntry);
                        // Do Stuff if de
                        if (de == lastelement)
                        {
                            XtraMessageBox.Show("This is the last", "Remember", MessageBoxButtons.YesNo, MessageBoxIcon.Info);
                        }
                    }
                }
            }
        }
    }

有几种方法可以查找集合中的最后一个对象

注意:如果使用var而不是 声明中的类名

一种方法是将集合的最后一个对象存储在变量中

  PrincipalSearchResult<Principal> users = group.GetMembers(true);


  UserPrincipal lastuser = (UserPrincipal)users.Last();


  foreach (UserPrincipal user in users)
  {
    //...

    if (user == lastuser)
    {
      // Messagebox
    }
  }
PrincipalSearchResult用户=group.GetMembers(true);
UserPrincipal lastuser=(UserPrincipal)users.Last();
foreach(用户中的用户主体用户)
{
//...
if(user==lastuser)
{
//消息框
}
}
另一个选项是使用迭代变量

  for (int i = 0; i < users.Count(); i++)
  {       

    if (i == users.Count())
    {
      // .. last user
    }

  }
for(int i=0;i
有几种方法可以找到集合中的最后一个对象

注意:如果使用var而不是 声明中的类名

一种方法是将集合的最后一个对象存储在变量中

  PrincipalSearchResult<Principal> users = group.GetMembers(true);


  UserPrincipal lastuser = (UserPrincipal)users.Last();


  foreach (UserPrincipal user in users)
  {
    //...

    if (user == lastuser)
    {
      // Messagebox
    }
  }
PrincipalSearchResult用户=group.GetMembers(true);
UserPrincipal lastuser=(UserPrincipal)users.Last();
foreach(用户中的用户主体用户)
{
//...
if(user==lastuser)
{
//消息框
}
}
另一个选项是使用迭代变量

  for (int i = 0; i < users.Count(); i++)
  {       

    if (i == users.Count())
    {
      // .. last user
    }

  }
for(int i=0;i
你好,弗洛里安,“lastelement”是什么意思?这是最新创建的条目吗?如果它是目录项的一个特定属性,那么看看这个问题的答案:例如,组中的用户正在呼叫广告中的100个用户。一个月后,广告组中有110个用户。最后我指的是第100或110个用户。组的最后一个用户。foreach要使用的最后一个。因此,您可以为
用户调用
last()
。我将发布一个example@Koryu用户只有Dispose、Equals、GetEnumerator、GetHashcode、GetType和ToStringHi Florian,你说“lastelement”是什么意思?这是最新创建的条目吗?如果它是目录项的一个特定属性,那么看看这个问题的答案:例如,组中的用户正在呼叫广告中的100个用户。一个月后,广告组中有110个用户。最后我指的是第100或110个用户。组的最后一个用户。foreach要使用的最后一个。因此,您可以为
用户调用
last()
。我将发布一个example@Koryu用户只有Dispose、Equals、GetEnumerator、GetHashcode、GetType和ToString。这对我的帮助很大,但我刚刚将您的代码添加到我的项目中,但它从未进入If案例。嗯,可能是因为我对lastuser使用了Principal,对user使用了UserPrincipal。我编辑了它。如果这是问题所在,请选择是否要使用
UserPrincipal
Principal
这对我的帮助很大,但我刚刚将您的代码添加到我的项目中,但它从未进入If案例,嗯,可能是因为我对lastuser使用Principal,而对user使用UserPrincipal。我编辑了它。如果这是问题所在,请选择是否要使用
UserPrincipal
Principal