Sorting an IList in C#

前端 未结 15 2403
臣服心动
臣服心动 2020-11-28 06:36

So I came across an interesting problem today. We have a WCF web service that returns an IList. Not really a big deal until I wanted to sort it.

Turns out the IList

15条回答
  •  广开言路
    2020-11-28 06:52

    Found this thread while I was looking for a solution to the exact problem described in the original post. None of the answers met my situation entirely, however. Brody's answer was pretty close. Here is my situation and solution I found to it.

    I have two ILists of the same type returned by NHibernate and have emerged the two IList into one, hence the need for sorting.

    Like Brody said I implemented an ICompare on the object (ReportFormat) which is the type of my IList:

     public class FormatCcdeSorter:IComparer
        {
           public int Compare(ReportFormat x, ReportFormat y)
            {
               return x.FormatCode.CompareTo(y.FormatCode);
            }
        }
    

    I then convert the merged IList to an array of the same type:

    ReportFormat[] myReports = new ReportFormat[reports.Count]; //reports is the merged IList
    

    Then sort the array:

    Array.Sort(myReports, new FormatCodeSorter());//sorting using custom comparer
    

    Since one-dimensional array implements the interface System.Collections.Generic.IList, the array can be used just like the original IList.

提交回复
热议问题