string aa = 100205;
string bb = 051002;(说明: aa、bb 都是由字符"10"、"02"、"05"组成,只是顺序不同)if (aa == bb)
{
//
}希望 aa 与 bb 的比较判断为true,即:只要元素相同,顺序不考虑怎么实现呢?谢谢
string bb = 051002;(说明: aa、bb 都是由字符"10"、"02"、"05"组成,只是顺序不同)if (aa == bb)
{
//
}希望 aa 与 bb 的比较判断为true,即:只要元素相同,顺序不考虑怎么实现呢?谢谢
{
public static string Sort(this string str, int length)
{
//string[] s = Regex.Split(str, "");
int len = (int)Math.Ceiling(str.Length / (length + 0f)); string[] ss = new string[len];
for (int i = 0; i < str.Length; i += length)
{
int end = length;
if (i + length > str.Length)
{
end = str.Length - i;
}
ss[i / length] = str.Substring(i, end);
}
List<string> slist = new List<string>(ss);
slist.Sort();
return string.Join(string.Empty, slist.ToArray());
}
}
调用: static void Main(string[] args)
{
string aa = "10020507";
string bb = "07051002";
Console.WriteLine(aa.Sort(2) == bb.Sort(2));//输出:True
}
Sort的参数是你的字符串中多数长度算一个单位。
Sort方法可以自己去完善。
string bb = 051002;(说明: aa、bb 都是由字符"10"、"02"、"05"组成,只是顺序不同)就是说2位数的数字必须是10,02,05
而不能是01,20,50,或者其他吧;
把aa搞成3段,bb搞成3段;
aa的第一段去遍历bb的1,2,3段;得到一个,aa去掉一段;
一个循环后,aa的count变成0了;就表示相等了;
或者直接!controns好像这个东西,判断aa的任何一段不在bb里,就表示不相等了不要被什么==啊,true被忽悠了;
string bb = "030102";
aa = string.Concat(Regex.Matches(aa, @".{2}").Cast<Match>().Select(x => x.Value).OrderBy(x => x).ToArray());
bb = string.Concat(Regex.Matches(bb, @".{2}").Cast<Match>().Select(x => x.Value).OrderBy(x => x).ToArray());
if (aa == bb)
{
Response.Write("相等");
}
可以写个排序的方法,然后再比较
数字排序,从小到大,从大到小都可以
字母ASCII排序之后再笔记