我有Server class
:
public class CsServerInfo
{
public string ip { get; set; }
public string name { get; set; }
}
和ServerList
:
public class ServerList
{
public List<CsServerInfo> serverdata { get; set; }
}
现在来自ServerList
这是我希望得到ip
string
属性Item
属性的name
属性的ip
,我知道name="newserver"
属性。
基本上我想说一下var item = serverList.serverdata.Select(p => p.name == server.Text);
项目的# Remove old ppa: and its packages
sudo add-apt-repository ppa:ondrej/php5-5.6 --remove --yes
sudo apt-get --purge remove php5-common
# Add the new ppa:
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
# If you are using it with Apache, run:
sudo apt-get install libapache2-mod-php5.6
# If you are using it with Nginx, run:
sudo apt-get install php5.6-fpm
属性。
我知道我可以搜索这样的名字属性:
{{1}}
但我不知道怎么去第二个房产。 谢谢你的帮助。
答案 0 :(得分:0)
首先使用Where
子句过滤所需的所有内容,然后对这些项目使用Select
获取ip
var item = serverList.serverdata
.Where(p => p.name == server.Text)
.Select(p => p.ip)
答案 1 :(得分:0)
您可以在列出过滤器后使用Select
方法进行投影:
var item = serverList.serverdata
.Where(p => p.name == server.Text)
.Select(p=>ip);
你也可以试试这个:
var server = serverList.serverdata
.FirstOrDefault(p => p.name == server.Text);
if(server!=null)
{
// the server found
var ip = server.ip;
}
但请注意,如果有多个服务器具有相同名称,则上述方法将返回第一个找到的服务器。
答案 2 :(得分:0)
您说“搜索名称属性”的代码实际上不起作用。这段代码:
var item = serverList.serverdata.Select(p => p.name == server.Text);
返回一个布尔值列表,指示列表中的每个项目是否符合您的条件。
这个类似的代码实际上可以为您提供所需的内容:与您指定的名称匹配的第一个项目:
var item = serverList.serverdata.FirstOrDefault(p => p.name == server.Text);
然后你可以访问该属性:
var ip = item.ip;
请注意,如果找不到匹配项,FirstOrDefault
将返回null
,因此您应该在尝试访问之前检查item == null
是否正确。{/ p>
答案 3 :(得分:-1)
尝试类似
的内容serverList.serverdata.FirstOrDefault(p => p.Name == server.Text).ip;
或者。一旦你选择它。你选择了它,现在是var x吧?
所以我认为你可以在var x中访问它。像...这样的东西。
MessageBox.Show(x.ip);