我仍然是编程和尝试列出锁定域用户的初学者但不知道如何引用数组中的计数参数
你可以帮忙吗? 部分代码:else if (s.StartsWith("lookup"))
{
var lockedUsers = new List<UserPrincipal>();
using (var context = new PrincipalContext(ContextType.Domain, "test.local"))
{
GroupPrincipal grp = GroupPrincipal.FindByIdentity(context, IdentityType.SamAccountName, "Domain Users");
foreach (var userPrincipal in grp.GetMembers(false))
{
var user1 = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, userPrincipal.SamAccountName);
if (user1 != null)
{
if (user1.IsAccountLockedOut())
{
lockedUsers.Add(user1);
}
}
}
}
console.writeline(lockedUsers[0].samaccountname);
问题是使用lockedUsers[0].samaccountname
我只得到第一项(用户)但是如何引用每一项计数?我可以使用通配符或其他东西吗?我尝试了foreach但不确定如何实现,因为我想获取每个计数的lockedUsers的.SamAccountName参数。
输出应该是SamAccountName的值(对于lockedUsers中的每个计数)
由于
答案 0 :(得分:0)
典型的解决方案如下所示:
foreach (var u in lockedUsers)
{
Console.WriteLine(u.SamAccountName);
}
或者:
for (int i=0; i<lockedUsers.Count; i++)
{
Console.WriteLine(lockedUsers[i].SamAccountName);
}
还有一些聪明的方法可以做到,比如:
lockedUsers.ForEach((lu) => { Console.WriteLine(lu.SamAccountName); })
......(感谢Ron)或......
Console.WriteLine(string.Join("\r\n", lockedUsers.Select( u => u.SamAccountName )));