将LINQ语句生成的字符串解析为方法
我想仅将string.Format
的e.Trip
传递给tripChoose
中引用的方法。到目前为止,它试图传递一个未为该方法格式化的字符串。如果我可以通过字符串的Trip部分,它就可以工作。有什么建议么?将LINQ语句生成的字符串解析为方法
private void LoadExpenseListSums()
{
expenseTotalSelect.Items.Clear();
var sortedList=
from e in roster
group e by e.Trip into expenseCollect
select new { Trip = expenseCollect.Key, SumAmount = expenseCollect.Sum(e => e.Amount) };
foreach (var e in sortedList)
tripChoose.Items.Add(string.Format("{0} | ${1}", e.Trip, e.SumAmount));
}
权,现在我们确实知道我们正在处理,我怀疑你想是这样的:
private void LoadExpenseListSums()
{
expenseTotalSelect.Items.Clear();
var dateSorted =
from e in roster
group e by e.Trip into tripGroup
select new { Trip = tripGroup.Key,
Text = string.Format("{0} | ${1}",
tripGroup.Key,
tripGroup.Sum(e => e.Amount) };
tripChoose.DataSource = dateSorted;
tripChoose.DisplayMember = "Text";
tripChoose.ValueMember = "Trip";
}
这使得一些假设: ASE, - roster
是内存中的集合:如果不是的话,你可能需要一个AsEnumerable
调用格式化之前,要做到这一点本地 - 匿名类型使用数据绑定;我不确定是否是这种情况,但我希望它是
然后,您使用SelectedValue
成员查找旅程ID。
认为你应该使用一个对象作为在评论所说,但是假设expenseTotalSelect
是List<string>
和tripChoose
被绑定到它,你可以这样做:
(string)tripChoose.SelectedItem.Split('|')[0].Replace(" ", string.Empty)
它应该指tripChoose!对不起,我正在将项目发送到另一个组合框进行测试。 – user1350264 2012-04-25 14:33:27
它看起来像你的expenseTotalSelect是ASP.NET选择控件并在做什么最终在结果中添加一个元素HTML仅通过以下文本标识:
<select id='expenseTotalSelect'>
<option>Hawaii | $5000</option>
<option>London | $4000</option>
...
</select>
在你expenseTotalSelect.Items.Add打电话,你可能会更好做以下几点:
expenseTotalSelect.Items.Add(
new ListItem(string.Format("{0} | ${1}", e.Trip, e.SumAmount),e.Trip));
现在,当您呈现到HTML,你会得到如下:
<select id='expenseTotalSelect'>
<option value='Hawaii'>Hawaii | $5000</option>
<option value='London'>London | $4000</option>
...
</select>
这将是容易只是引用tripChoose.SelectedItem.Value
这将只包含e.Trip值(夏威夷或伦敦)这个例子
'expenseTotalSelect'类型是什么?这听起来好像不是LINQ的问题,但是使用任何你正在使用的控件 - 你可能只需要添加一个既有文本又有适当值的对象,并设置适当的绑定。 – 2012-04-25 06:40:36
对不起,我把它发送到另一个组合框进行测试,它应该参考tripChoose。 – user1350264 2012-04-25 14:32:36
那么,仍然没有回答什么tripChose是什么的问题,*正是* - 请记住,你还没有告诉我们这是WPF,WinForms,ASP.NET,还有其他东西... – 2012-04-25 14:35:53