解决方案 »
- Winform 在执行构造函数时如何阻止它运行Load方法
- 前台动态显示表格数据的代码优化问题,请教一下高手。
- 问一个关于算法的问题..求助
- 今天遇到个难题 c#中怎么在网页上显示tiff 哪位大哥有详细代码发下
- winform问题
- 有哪些C#写的基于Windows Form的经典软件?
- 在指定列中插入纪录,该怎么写代码
- 高手帮帮忙啊,急,急,急啊!
- 求助一个Comobox与DataGrid联动选择的问题
- C# MSDN说通过BlockingCollection.TryAdd()添加重复项会引发异常,这个重复项时指?
- 模态窗体隐藏执行两次FormClosing
- 鼠标划过comboBox 改变边框颜色
int[] ooxx = new int[5] { 1, 9, 5, 7, 2 };
var xxoo = ooxx.OrderByDescending(d => d).Skip(0).Take(3).ToArray();
for (int i = 0; i < ooxx.Length; i++)
{
for (int j = 0; j < xxoo.Length; j++)
{
if (xxoo[j]==ooxx[i])
{
Console.WriteLine("排行第" + (j + 1).ToString() + "的数字是" + xxoo[j] + "在数组中的索引是" + (i + 1).ToString());
}
}
}
自行测试..
private void txt_find_TextChanged(object sender, EventArgs e)
{
if (txt_find.Text != string.Empty)//判断查找字符串是否为空
{
string[] P_str_temp = Array.FindAll//使用FindAll方法查找相应字符串
(G_str_array, (s) => s.Contains(txt_find.Text));
if (P_str_temp.Length > 0)//判断是否查找到相应字符串
{
txt_display.Clear();//清空控件中的字符串
foreach (string s in P_str_temp)//向控件中添加字符串
{
txt_display.Text += s + Environment.NewLine;
}
}
else
{
txt_display.Clear();//清空控件中的字符串
txt_display.Text = "没有找到记录";//提示没有找到记录
}
}
else
{
txt_display.Clear();//清空控件中的字符串
}
}
int[] 数据 = { 3, 33, 333, 6, 66, 666, 9, 99, 999, 8, 88, 888, 5, 55, 555, 2, 22, 222, 1, 11, 111, 4, 44, 444, 7, 77, 777 },
大数 = Enumerable.Repeat(int.MinValue, 10).ToArray(), 小数 = Enumerable.Repeat(int.MaxValue, 6).ToArray(), 大下标 = new int[大数.Count()], 小下标 = new int[小数.Count()];
int 下标 = 0;
do
{
int 序 = 0, 排序大 = 大数.Count() - 1, 排序小 = 小数.Count() - 1;
do
{
if (数据[下标] > 大数[序])
{
while (排序大 - 序 > 0)
{
大下标[排序大] = 大下标[排序大 - 1];
大数[排序大] = 大数[排序大-- - 1];
}
大下标[序] = 下标;
大数[序] = 数据[下标];
}
if (序 <= 排序小)
if (数据[下标] < 小数[序])
{
while (排序小 - 序 > 0)
{
小下标[排序小] = 小下标[排序小 - 1];
小数[排序小] = 小数[排序小-- - 1];
}
小下标[序] = 下标;
小数[序] = 数据[下标];
}
} while (序++ < 排序大);
} while (++下标 < 数据.Count());
int[] 数据 = { 3, 33, 333, 6, 66, 666, 9, 99, 999, 8, 88, 888, 5, 55, 555, 2, 22, 222, 1, 11, 111, 4, 44, 444, 7, 77, 3333, 6666, 9999, 8888, 5555, 2222, 1111, 4444, 7777, 33333, 66666, 99999, 88888, 55555, 22222, 11111, 44444, 77777, 333333, 666666, 999999, 888888, 555555, 222222, 111111, 444444, 777777, 999999 },
大数 = Enumerable.Repeat(int.MinValue, 10).ToArray(), 小数 = Enumerable.Repeat(int.MaxValue, 6).ToArray(), 大下标 = new int[大数.Count()], 小下标 = new int[小数.Count()];
int 下标 = 0, 序 = 0, 排序大 = 大数.Count() - 1, 排序小 = 小数.Count() - 1;
do
{
if (序 < 排序大)
{
if (数据[下标] > 大数[序])
{
while (排序大 - 序 > 0)
{
大下标[排序大] = 大下标[排序大 - 1];
大数[排序大] = 大数[排序大-- - 1];
}
大下标[序] = 下标;
大数[序] = 数据[下标];
}
if (序 <= 排序小)
if (数据[下标] < 小数[序])
{
while (排序小 - 序 > 0)
{
小下标[排序小] = 小下标[排序小 - 1];
小数[排序小] = 小数[排序小-- - 1];
}
小下标[序] = 下标;
小数[序] = 数据[下标];
}
++序;
}
else
{
序 = 0;
排序大 = 大数.Count() - 1;
排序小 = 小数.Count() - 1;
++下标;
}
} while (下标 < 数据.Count());当然还可以继续优化代码,将在不博客专栏内发表