Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I don't have SharePoint handy, so the list access code might not be quite right, but the rest of the code should do what you want.</p> <pre><code>ManagerSummary summary = new ManagerSummary(); foreach (ListItem oListItem in collListItem) { FieldUserValue managerValue = (FieldUserValue)oListItem["Manager"]; string managerId = managerValue.LookupId; string managerName = managerValue.LookupValue; double amount = Convert.ToDouble(oListItem["Amount"].ToString()); summary.AddValue(managerId, managerName, amount); } StringBuilder output = new StringBuilder(); output.AppendLine("&lt;tr&gt;&lt;th&gt;Manager Name&lt;/th&gt;&lt;th&gt;Total&lt;/th&gt;&lt;/tr&gt;"); foreach (var manager in summary.TopManagers(3)) { output.AppendFormat("&lt;tr&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;", manager.Name, manager.Total); output.AppendLine(); } Console.WriteLine(output.ToString()); class ManagerSummary { Dictionary&lt;string, Manager&gt; _managers = new Dictionary&lt;string, Manager&gt;(); public void AddValue(string managerId, string managerName, double amount) { if (_managers.ContainsKey(managerId)) { _managers[managerId].Total += amount; } else { _managers[managerId] = new Manager { Id = managerId, Name = managerName, Total = amount }; } } public List&lt;Manager&gt; TopManagers(int count) { var managers = _managers.Values.ToList(); return managers.OrderByDescending(x =&gt; x.Total).Take(count).ToList(); } } class Manager { public string Id { get; set; } public string Name { get; set; } public double Total { get; set; } public override string ToString() { return string.Format("{0,-20}{1,-10}", Name, Total); } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload