0

小さいサイズから大きいサイズまでのサイズで製品を表示したいですか?:

M、XL、S は、S、M、XL という結果になる必要があります。

c#

 protected void Page_Load(object sender, EventArgs e)
        {
            List<product> list = new List<product>();
            product p1 = new product() {productid=1,Size="M" };
            product p2 = new product() { productid = 2, Size = "XL" };
            product p3 = new product() { productid = 3, Size = "S" };
            list.Add(p1);
            list.Add(p2);
            list.Add(p3);
            List<product> orderlist = list.OrderBy(o => o.Size).ToList();

            //list.Sort(size);
            foreach (var pr in orderlist)
            {
                Response.Write(pr.Size +"<br/>");
            }
        }



   public class product
    {
        public int productid{ get; set; }
        public string Size { get; set; }
    }
4

3 に答える 3

1

良いアプローチは、次のproductような型に IComparable を実装することです。

public class product : IComparable
{
     // YOUR CODE
#region IComparable<Employee> Members

     public int CompareTo( product other )
     {
         // Comparison logic
         // return 1 if other size is greater
         // -1 if other size is smaller
         // 0 if both sizes are equal
     }

#endregion
}
于 2013-07-22T05:38:39.123 に答える
0

製品クラスに ICompareable-Interface を実装できます。クラスは次のようになります。 public class product : IComparable { public int productid { get; 設定; } パブリック文字列のサイズ { get; 設定; }

    /// <summary>
    /// do compare-stuff like if-statement on the size or something else
    /// </summary>
    /// <param name="compareProduct">the product to compare with this</param>
    /// <returns>
    /// 0  if both product-sizes are equal
    /// 1  if compareProduct.Size is larger
    /// -1 if this.Size is larger
    /// </returns>
    public int CompareTo(product compareProduct)
    {
        // TODO: implement
    }
}

次に、次のように呼び出すだけでリストを並べ替えることができます。

list.Sort();
于 2013-07-22T05:44:37.837 に答える