C# 如何在C中对用户定义集合列表进行ascii排序#

C# 如何在C中对用户定义集合列表进行ascii排序#,c#,c#-4.0,C#,C# 4.0,我有一个集合(对象)列表,需要按特定键(值)对它们进行ascii排序 我已经试过了,但我在任何地方都能找到一个字符串列表,这些字符串是ascii排序的,而不是对象。 var myList=新列表() 我的清单如下: [ { "parent": null, "Id": 14108, "value": "" }, { "parent": null, "Id": 14109,

我有一个集合(对象)列表,需要按特定键(值)对它们进行ascii排序 我已经试过了,但我在任何地方都能找到一个字符串列表,这些字符串是ascii排序的,而不是对象。 var myList=新列表()

我的清单如下:

[
      {
        "parent": null,
        "Id": 14108,
        "value": ""
      },
      {
        "parent": null,
        "Id": 14109,
        "value": null
      },

      {
        "parent": null,
        "Id": 14113,
        "value": "1ab"
      },
      {
        "parent": null,
        "Id": 14114,
        "value": "11b"
      },
      {
        "parent": null,
        "Id": 14115,
        "value": "a10"
      },
      {
        "parent": null,
        "Id": 14111,
        "value": "a1234"
      }
    ]

我希望列表按ascii顺序的值进行排序,但似乎只有通过c#

中的字符串列表才能解决这个问题。您需要向排序方法传递一个IComparer,或者使用lambda来确定应该使用哪个属性进行排序。在您的示例中,它看起来类似于
myList.Sort(f=>f.value)

您需要向排序方法传递一个IComparer,或者使用lambda来标识应该使用哪个属性进行排序。在您的示例中,它类似于给定的
myList.Sort(f=>f.value)

List<MyInterfaceObject> mylist;
给定


这是在一个列表对象中?你怎么把它放在那个对象里--我觉得它像JSON--它不是C#是的,它只是一个新列表();我只是添加了它,只是为了用json表示它way@VahRun
ascii排序
没有任何意义。如果按字符串排序,则得到字典顺序。如果您想要本地化或自定义排序,可以将CultureInfo或StringComparer对象作为参数传递给Sort或OrderBymethods@VahRun检查。它解释了区域性和区域性不变排序的工作原理,顺序比较(您可能指的是ASCII排序),甚至解释了如何创建自己的比较器。顺便问一下,应该如何处理
null
?作为一个空字符串?它应该在其他行之前还是之后?那么这是在列表对象中?你怎么把它放在那个对象里--我觉得它像JSON--它不是C#是的,它只是一个新列表();我只是添加了它,只是为了用json表示它way@VahRun
ascii排序
没有任何意义。如果按字符串排序,则得到字典顺序。如果需要本地化或自定义排序,可以将CultureInfo或StringComparer对象作为参数传递给Sort或OrderBymethods@VahRun检查。它解释了区域性和区域性不变排序的工作原理,顺序比较(您可能指的是ASCII排序),甚至解释了如何创建自己的比较器。顺便问一下,应该如何处理
null
?作为一个空字符串?它应该在其他行之前还是之后?但有一个问题是它是ascii排序的吗?我需要的值是ascii和排序out@VahRun——“ascii排序”对我来说没有任何意义,它根据您指定的字段的默认比较器进行排序。如果这是一个字符数组,其中只有ascii字符,那么是的。@VahRun——在您的示例中,值中既有数字数据,也有字符串数据。在这种情况下,如果没有定制分拣机,我怀疑你会得到你想要的东西。。。如果您不解释您的需求,我就不知道这些情况下您需要什么规则。@VahRun——为了解释您的需求,请向我们展示MyInterfaceObject的代码,并明确说明您显示的值语句是如何加载到该对象中的。然后我可以告诉你如何做你想做的。@Hogan OP调用的
ascii排序
可能是顺序排序,例如
mylist.sort(x=>x.value,StringComparer.ordinal)但有一个问题是它是否按ascii排序?我需要的值是ascii和排序out@VahRun——“ascii排序”对我来说没有任何意义,它根据您指定的字段的默认比较器进行排序。如果这是一个字符数组,其中只有ascii字符,那么是的。@VahRun——在您的示例中,值中既有数字数据,也有字符串数据。在这种情况下,如果没有定制分拣机,我怀疑你会得到你想要的东西。。。如果您不解释您的需求,我就不知道这些情况下您需要什么规则。@VahRun——为了解释您的需求,请向我们展示MyInterfaceObject的代码,并明确说明您显示的值语句是如何加载到该对象中的。然后我可以告诉你如何做你想做的。@Hogan OP调用的
ascii排序
可能是顺序排序,例如
mylist.sort(x=>x.value,StringComparer.ordinal)
mylist.Sort(x => x.value);