/*By Jiangong SUN*/
Today is thanks giving day! LOL :)
Firstly we have a list :
List<FeatureResult> FeaturesList = new List<FeatureResult>();
foreach (var feature in Model.Features)
{
for (int c = 0; c < feature.Value.Count(); c++)
{
FeaturesList.Add(feature.Value[c]);
}
}
And then, we create a comparer :
public class FeatureResultComparer : IComparer<FeatureResult>
{
#region IComparer<FeatureResult> Members
///Compare two result
public int Compare(FeatureResult x, FeatureResult y)
{
return Level(x) - Level(y);
}
///add 1 if item has description
///add the length if item has multiple urls
private int Level(FeatureResult item)
{
int res = 0;
if (!string.IsNullOrEmpty(item.Description))
{
res += 1;
if (item.ImageUrl != null && item.ImageUrl.Length > 0)
res += item.ImageUrl.Length;
}
return res;
}
#endregion
}
Sort list by calling the comparer :
FeatureResultComparer featuresComparer = new FeatureResultComparer();
FeaturesList.Sort(featuresComparer);
FeaturesList.Reverse();
Enjoy coding !