使用字符串作为参数的一部分

时间:2014-12-05 15:16:40

标签: c#

很抱歉,如果不清楚的话。现在我的代码有这个:

IPAddress address = IPAddress.Parse(Properties.Settings.Default.NA);

我想要做的是用列表框中的选定项目替换最后的NA。我可以通过

来访问它
listBox1.SelectedItem.ToString();

listBox1将包含NA,EU,LAN等项目,我想要它,以便我可以做这样的事情

IPAddress address = IPAddress.Parse(Properties.Settings.Default.listBox1.SelectedItem.ToString());

但我不确定它是否有用。有人可以建议我解决这个问题吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

IPAddress address  = IPAddress.Parse(Settings.Default.Properties[listBox1.SelectedItem.ToString()].DefaultValue);

答案 1 :(得分:0)

最简单的方法是使用枚举作为列表框的数据源:

listBox1.DataSource = Enum.GetValues(typeof(EnumType));

然后所选项目实际上是枚举值:

EnumType item = (EnumType)listBox1.SelectedItem;

确保使用枚举的任何类型替换EnumType。

答案 2 :(得分:0)

根据您的评论,我相信您的ListBox中有string值,该值会映射到Properties。在属性中,存在包含IPAddress的实际字符串。

由于您可以访问:Properties.Settings.Default.NA,因此您也可以根据索引访问属性,这将是字符串键的名称。所以使用:

IPAddress address  = IPAddress.Parse(
            Properties.Settings.Default[listBox1.SelectedItem.ToString()].ToString());

您可以添加一些检查,以确定实际是否具有该属性。像:

string listBoxItem = listBox1.SelectedItem.ToString();

var valueFromProperty = Properties.Settings.Default[listBoxItem];
if (valueFromProperty != null)
{
    IPAddress address = IPAddress.Parse(valueFromProperty.ToString());
}