Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对最后一个字段中的空值进行排序_C#_Sorting - Fatal编程技术网

C# 对最后一个字段中的空值进行排序

C# 对最后一个字段中的空值进行排序,c#,sorting,C#,Sorting,我想对最后一个上的null值进行排序 第一个错误发生在SortInteger函数中的S1=“”或S2=“”时。 其次,我想对null值进行排序以结束 ID可以包含null值 private int SortInteger(string s1, string s2, string sortDirection) { int i1 = int.Parse(s1); int i2 = int.Parse(s2); return sortDirection == "asc" ? i

我想对最后一个上的
null
值进行排序

第一个错误发生在
SortInteger
函数中的
S1=“”
S2=“”
时。 其次,我想对
null
值进行排序以结束

ID可以包含
null

private int SortInteger(string s1, string s2, string sortDirection)
{
    int i1 = int.Parse(s1);
    int i2 = int.Parse(s2);
    return sortDirection == "asc" ? i1.CompareTo(i2) : i2.CompareTo(i1);
}
第一个错误发生在
SortInteger
函数中的
S1=“”
S2=“”
时。
第二,我想分类<代码> null <代码>值结束。

您必须考虑<强> 4 :

  • s1
    s2
    都是有效整数
  • 只有
    s1
    是有效的整数
  • 只有
    s2
    是有效的整数
  • s1
    s2
    都不是有效整数
  • 由于
    string
    不一定是有效的
    int
    ,请尝试
    int.TryParse
    而不是
    int.Parse

    代码:

    private static int SortInteger(string s1, string s2, string sortDirection)
    {
        int i1 = 0;
        int i2 = 0;
    
        bool isInt1 = int.TryParse(s1, out i1);
        bool isInt2 = int.TryParse(s2, out i2);
    
        if (isInt1 && isInt2)
          return sortDirection == "asc" ? i1.CompareTo(i2) : i2.CompareTo(i1);
        else if (isInt1)
          return sortDirection == "asc" ? -1 : 1;
        else if (isInt2)
          return sortDirection == "asc" ? 1 : -1;
        else
          return sortDirection == "asc" ? string.Compare(s1, s2) : string.Compare(s2, s1);
    }
    
    private static int SortInteger(string s1, string s2, string sortDirection)
    {
        int i1 = 0;
        int i2 = 0;
    
        bool isInt1 = int.TryParse(s1, out i1);
        bool isInt2 = int.TryParse(s2, out i2);
    
        if (isInt1 && isInt2)
          return sortDirection == "asc" ? i1.CompareTo(i2) : i2.CompareTo(i1);
        else if (isInt1)
          return sortDirection == "asc" ? -1 : 1;
        else if (isInt2)
          return sortDirection == "asc" ? 1 : -1;
        else
          return sortDirection == "asc" ? string.Compare(s1, s2) : string.Compare(s2, s1);
    }