【发布时间】:2017-09-03 16:48:26
【问题描述】:
我有课
class grpa
{
public string file_name { get; set; }
public string folder_name { get; set; }
}
我还有 2 个字符串列表。
List<string> actualfiles = new List<string>();
List<string> directoryfiles= new List<string>();
我正在使用枚举器来创建 grpa 类型的对象列表
IEnumerator enume1 = actualfiles.GetEnumerator();
IEnumerator enume2 = directoryfiles.GetEnumerator();
List<grpa> grp_list = new List<grpa>();
while ((enume1.MoveNext()) && (enume2.MoveNext()))
{
grp_list.Add(new grpa
{
file_name = enume1.Current.ToString(),
folder_name = enume2.Current.ToString()
});
}
我想使用自然排序对文件名之后的列表进行排序:
我有这个:
public static class SafeNativeMethods
{
[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)]
public static extern int StrCmpLogicalW(string psz1, string psz2);
}
public sealed class NaturalStringComparer : IComparer<string>
{
#region IComparer<string> Members
public int Compare(string x, string y)
{
return SafeNativeMethods.StrCmpLogicalW(x, y);
}
#endregion
}
如果它是一个普通的字符串列表,我可以使用:actualfiles.Sort(new NaturalStringComparer());
但是我怎样才能在file_name之后对grp_list进行排序呢?
【问题讨论】:
标签: c# sorting natural-sort