用list 接 数值,再讲数值转成 整形数组,排序、再将相邻的数用范围形式表示、
2015-10-29 00:00
288 查看
摘要: C# 将{1,2,3,4,5,6,7,9,11,12}转成{ 1-7,9,11-12}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
List<int> list1=new List<int>();
List<int> list2=new List<int>();
foreach (System.Windows.Forms.Control c in panel5.Controls)
{
if (c is CheckBox)
{
if (((CheckBox)c).Checked == true)
{
list1.Add(int.Parse(((CheckBox)c).Text));
}
else
{
list2.Add(int.Parse(((CheckBox)c).Text));
}
}
}
int[] arr = InsertionSort(list1.ToArray());
int[] arrhold = InsertionSort(list2.ToArray());
CPYC.normal = zhengli(arr);
CPYC.hold = zhengli(arrhold);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// <summary>
/// 插入排序法
/// </summary>
/// <param name="list"></param>
public static int[] InsertionSort(int[] list)
{
for (int i = 1; i < list.Length; i++)
{
int t = list[i];
int j = i;
while ((j > 0) && (list[j - 1] > t))
{
list[j] = list[j - 1];
--j;
}
list[j] = t;
}
return list;
}
/// 整理 将相邻的数值用范围的形式表示 {1,2,3}转成{1-3}
public string zhengli (int[] arry)
{
string stringbuild="";
int start, end;
for (int i = 0; i < arry.Length; i++)
{
start = arry[i];
while (i < arry.Length - 1 && arry[i] + 1 == arry[i + 1])
i++;
end = arry[i];
if (start == end)
{
stringbuild += start.ToString()+",";
}
else
{
stringbuild += start + " - " + end+",";
}
}
return stringbuild;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
List<int> list1=new List<int>();
List<int> list2=new List<int>();
foreach (System.Windows.Forms.Control c in panel5.Controls)
{
if (c is CheckBox)
{
if (((CheckBox)c).Checked == true)
{
list1.Add(int.Parse(((CheckBox)c).Text));
}
else
{
list2.Add(int.Parse(((CheckBox)c).Text));
}
}
}
int[] arr = InsertionSort(list1.ToArray());
int[] arrhold = InsertionSort(list2.ToArray());
CPYC.normal = zhengli(arr);
CPYC.hold = zhengli(arrhold);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// <summary>
/// 插入排序法
/// </summary>
/// <param name="list"></param>
public static int[] InsertionSort(int[] list)
{
for (int i = 1; i < list.Length; i++)
{
int t = list[i];
int j = i;
while ((j > 0) && (list[j - 1] > t))
{
list[j] = list[j - 1];
--j;
}
list[j] = t;
}
return list;
}
/// 整理 将相邻的数值用范围的形式表示 {1,2,3}转成{1-3}
public string zhengli (int[] arry)
{
string stringbuild="";
int start, end;
for (int i = 0; i < arry.Length; i++)
{
start = arry[i];
while (i < arry.Length - 1 && arry[i] + 1 == arry[i + 1])
i++;
end = arry[i];
if (start == end)
{
stringbuild += start.ToString()+",";
}
else
{
stringbuild += start + " - " + end+",";
}
}
return stringbuild;
}
相关文章推荐
- Android开发高薪之路 蜂窝教育与您同行
- 使用指针实现数据交换
- 用函数指针调用函数
- Webservice理解和使用小记
- TextView滚动问题
- 几种简单的js语句(延时函数,回车事件)
- SDWebImage获取网络图片大小
- JQuery实现幻灯片的切换
- 预订景点门票api演示
- maven添加 xfire-all-1.2.6.jar 导致的spring配置文件异常
- Linux 端口号划分
- 基于EasyUI的Web开发框架
- Oracle序列使用
- Linux 配置jdk和tomcat
- nutch2.3+hbase配置
- nutch2.3爬虫抓取电影网站
- 網上adidas originals品牌的
- 標有喬丹鞋黑色的耐克
- puma官網 鞋類將是最
- rsa 秘钥认证