public class CityInfo
{
public string City { get; set; }
public float Salary { get; set; }
}
if (!IsPostBack)
{
var s = new List {
new CityInfo(){ City = "上海", Salary=8000f },
new CityInfo() { City = "杭州", Salary=8000f },
new CityInfo() { City = "北京", Salary=6000f },
new CityInfo() { City = "廣州", Salary=6000f },
new CityInfo() { City = "深圳", Salary=4000f },
new CityInfo() { City = "成都", Salary=2000f },
new CityInfo() { City = "武漢", Salary=2000f }
};
// 呼叫擴展方法 Rank,依薪資排序並產生「位次」欄位
this.GridView1.DataSource = s.Rank((c, c1) => c.Salary.CompareTo(c1.Salary), "位次");
this.GridView1.DataBind();
}
<asp:GridView ID="GridView1" runat="server" BackColor="White" Width="40%"
BorderColor="#67DB4A" BorderStyle="None" BorderWidth="1px" CellPadding="4">
<RowStyle BackColor="White" ForeColor="#003399" />
<FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
<PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
<SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
<HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />
</asp:GridView>
| City | Salary | 位次 |
|---|---|---|
| 杭州 | 8000 | 1 |
| 上海 | 8000 | 1 |
| 北京 | 6000 | 3 |
| 廣州 | 6000 | 3 |
| 深圳 | 4000 | 5 |
| 武漢 | 2000 | 6 |
| 成都 | 2000 | 6 |
相同薪資共享名次,下一名次正確跳過(如兩個第1名,下一名為第3名),完全符合競賽排名規則。