在为Sharepoint 2010 UserProfiles做foreach时,有没有办法对它们进行排序?

时间:2012-09-13 12:55:12

标签: c# visual-studio sharepoint sharepoint-2010 web-parts

我正在为Sharepoing 2010制作一个简单的生日日历webpart。

我需要遍历网站的所有用户,并在所述日期显示有生日的人。我需要按名字的字母顺序显示用户。

我可以通过以下方式遍历用户列表:

SPSite currentSite = ...
ServerContext ospServerContext = ServerContext.GetContext(currentSite);
UserProfileManager ospUserProfileManager = new UserProfileManager(ospServerContext);
foreach (UserProfile ospUserProfile in ospUserProfileManager) { ... }

但是,我无法控制配置文件的顺序。有没有内置的方法来通过一些简单的规则来命令配置文件,或者我是否必须创建一个Dictionary(字符串,UserProfile),从UserProfileManager填充它,然后按其键对它进行排序,然后为其成员做foreach? / p>

谢谢!

1 个答案:

答案 0 :(得分:3)

使用块添加:

using System.Linq;

创建用户个人资料的集合:

var collection = new List<UserProfile>();

填充它:

foreach (UserProfile ospUserProfile in ospUserProfileManager) 
{ 
   collection.Add(ospUserProfile);
}

然后sort it

var sorted = collection.OrderBy(p => p.PropertyToSort);