2

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

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

我可以通过这样做来遍历用户列表:

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

但是,我无法控制配置文件的顺序。是否有任何内置方法可以通过一些简单的规则对配置文件进行排序,或者我是否必须制作一个 Dictionary(string,UserProfile),从 UserProfileManager 填充它,然后按其键对其进行排序,然后为其成员执行 foreach?

谢谢!

4

1 回答 1

3

添加使用块:

using System.Linq;

创建用户配置文件的集合:

var collection = new List<UserProfile>();

填充它:

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

然后对其进行排序

var sorted = collection.OrderBy(p => p.PropertyToSort);
于 2012-09-13T13:10:28.127 回答