YTU OJ C# 1616: 01串排序

using System;
class Program
{
static void Main(String[] agrs)
{
string[] num =new string[100];
var i = 0;
method method = new method();
while (String.IsNullOrEmpty(num[i] = Console.ReadLine()) == false)
{
i++;
}
for (var a = 0; a < i - 1; a++)
{
for (var b = 0; b < i - 1; b++)
{
string tomp;
if (num[b].Length > num[b + 1].Length)
{
tomp = num[b];
num[b] = num[b + 1];
num[b + 1] = tomp;
}
else if (num[b].Length == num[b + 1].Length)
{
var c = 0;
var d = 0;
c = method.contrast1(num[b], num[b + 1]);
if (c == 1)
{
tomp = num[b];
num[b] = num[b + 1];
num[b + 1] = tomp;
}
if (c == 2)
{
d = method.contrast1(num[b], num[b + 1]);
if (d == 1)
{
tomp = num[b];
num[b] = num[b + 1];
num[b + 1] = tomp;
}
}
}
}
}
for(var d=0;d<i;d++)
{
Console.WriteLine(num[d]);
}
}
}
class method
{
public int contrast1(string str1,string str2)
{
Char[] strn1 = str1.ToCharArray();
Char[] strn2 = str2.ToCharArray();
var sum1 = 0;
var sum2 = 0;
foreach (var x in strn1)
{
if (x == '1')
sum1++;
}
foreach (var y in strn2)
{
if (y == '1')
sum2++;
}
if(sum1>sum2)
return 1;
if (sum1 == sum2)
return 2;
return 0;
}
public int contrast2(string str1 ,string str2)
{
Char[] strn1 = str1.ToCharArray();
Char[] strn2 = str2.ToCharArray();
var sum1 = 0;
var sum2 = 0;
foreach (var x in strn1)
{
sum1 += x;
}
foreach (var y in strn2)
{
sum2 += y;
}
if (sum1 > sum2)
return 1;
return 0;
}
}