【发布时间】:2016-11-06 01:19:48
【问题描述】:
我有一个列表框,里面有 X 个项目。一个项目是像字符串、双倍、双倍一样建立起来的。我希望第二个双精度值较小的项目与它的字符串一起显示在标签中。
示例项目:名称 Value1 Value2 所以每个部分都由空格分隔。该代码仅适用于获取第二个双精度的最小值,但不获取该项目的字符串。
vName 的功能不起作用。
private void bVergleich_Click(object sender, RoutedEventArgs e)
{
if (listBox.Items.Count <= 0)
{
MessageBox.Show("Bitte erst Einträge hinzufügen.");
}
else
{
int anzahl = listBox.Items.Count;
string str = listBox.Items[anzahl].ToString();
string vName = str.Substring(0, str.IndexOf(" ") + 1);
var numbers = listBox.Items.Cast<string>().Select(obj => decimal.Parse(obj.Split(' ').First(), NumberStyles.Currency, CultureInfo.CurrentCulture));
decimal minValue = listBox.Items.Cast<string>().Select(obj => decimal.Parse(obj.Split(' ').Last(), NumberStyles.Currency, CultureInfo.CurrentCulture)).Min();
lVergleich.Content = vName + " " + minValue + "€";
}
}
任何想法我也可以得到字符串?
【问题讨论】:
-
我建议使用数据项类(具有适当的属性)而不是字符串作为列表框项。查看 MSDN 上的 Data Templating Overview 文章。
-
我希望你的值(第二个双精度值)不明显或者?=!
-
@Clemens 除了使用数据模板,您还有其他想法吗?