我有這樣的問題。
我對串列中的所有數字進行排序并將它們列印在串列框中。我從我制作陣列的txt檔案中讀取數字。
我需要用戶按以下順序輸入任何數字(我保存在變數“a”中)這些數字:
- 首先是小于a的數字
- 那么數字等于一個
- 最后是大數字。
并將其全部列印在串列框中。
...
float x;
if (float.TryParse(value, NumberStyles.Number, CultureInfo.InvariantCulture, out x))
{
lst.Items.Add(x);
}
List<float> array = new List<float>();
array.Add(x);
a = Convert.ToInt32(txt1.Text);
int at = lst2.Items.Count;
for (int o = 0; o < lst2.Items.Count; o)
{
if (x < (float)(lst2.Items[o]) && a >= o)
{
at = o;
break;
}
}
lst2.Items.Insert(at, x);
使用此代碼,我只對數字進行排序,而不使用變數進行排序。
uj5u.com熱心網友回復:
您可以只獲取小于、等于和大于 的數字a,然后填充串列框。
private List<float> numbers = new List<float>();
private void Form1_Load(object sender, EventArgs e)
{
numbers = File.ReadAllLines("input.txt").Select(s => float.Parse(s)).ToList();
}
private void button1_Click(object sender, EventArgs e)
{
if (float.TryParse(txt1.Text, NumberStyles.Number, CultureInfo.InvariantCulture, out float a))
{
// add a to numbers?
numbers.Add(a);
var lessThan = numbers.Where(n => n < a);
var equalTo = numbers.Where(n => n == a);
var greaterThan = numbers.Where(n => n > a);
// populate listboxes?
lst.DataSource = lessThan.ToList();
lst1.DataSource = equalTo.ToList();
lst2.DataSource = greaterThan.ToList();
}
}
輸入.txt
123.45
1.2345
0.12345
12345
12.345
1234.5

如果您希望它們全部排序,則可以在從檔案中讀取時按順序排序
numbers = File.ReadAllLines("input.txt").Select(s => float.Parse(s)).OrderBy(n => n).ToList();
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/389778.html
上一篇:在不單擊行的情況下獲取DataGridView列中的最高數字,以在另一個表單上生成ID欄位。(C#Windows表單應用程式)
下一篇:如何并排合并兩個以上的影像?
