如何通过linq C#连接两个文件使用where条件? [英] How join two document using where condition by linq C# ?
问题描述
我选择了我的下拉ID是2080.如何将两个文件映射到哪里条件?如何使用linq C#过滤我的数据?
第一个XML文档
< hostgroup id = 2080 >
< instance_id > 1 < / instance_id >
< hostgroup_name > Avanade-Hypervisors < / hostgroup_name >
< 成员 >
< host id = 2061 >
< host_name > ZACN-PSPR-HVR13 < / host_name >
< / host >
< host id = 2062 >
< host_name > ZACN-PSPR-HVR14 < / host_name >
< < span class =code-leadattribute> / host >
< host id = 2063 >
< host_name > ZACN-PSPR-HVR15 < span class =code-keyword>< / host_name >
< / host >
< / members >
< /主机组 >
第二个XML文档>
< hoststatuslist >
< hoststatus id = 49294 >
< host_id > 2061 < / host_id >
< name > ZACN-VSPR-WAP02 < / name >
< < span class =code-leadattribute> display_name > ZACN-PSPR-HVR13 < / display_name >
< 别名 > management_servers < / alias >
< status_update_time > 2015-09-19 08:00:31 < / status_update_time >
< last_state_change > 2015-09-18 19:25:06 < / last_state_change >
< last_hard_state_change > 2015-09-16 18:18:04 < / last_hard_state_change >
< last_time_up > 2015-09-19 08:00:31 < / last_time_up >
< < span class =code-leadattribute> last_time_down > 2015-09-18 19:25:06 < / last_time_down >
< / hoststatus >
< hoststatus id = 49294 >
< host _id > 2062 < / host_id >
< 名称 > ZACN-VSPR-WAP02 < / name >
< display_name > ZACN-PSPR-HVR14 < / display_name >
< 别名 > linux_servers < /别名 >
< status_update_time > 2015-09 -19 06:00:31 < / status_update_time > ;
< last_state_change > 2015-09-18 19:25:06 < / last_state_change >
< last_hard_state_change < span class =code-keyword>> 2015-09-16 18:18:04 < / last_hard_state_change >
< last_time_up > 2015-09-19 08:00:31 < / last_time_up >
< last_time_down > 2015-09-18 19:25:06 < < span class =code-leadattribute> / last_time_down >
< / hoststatus >
< hoststatus id = 49294 >
< span class =code-keyword>< host_id > 2063 < / host_id >
< name > ZACN-VSPR-WAP02 < / name >
< display_name > ZACN-PSPR-HVR15 < / display_name >
< alias > localhost < / alias >
< status_update_time > 2015-09-19 09:00:31 < / status_update_time >
< last_state_change > 2015-09-18 19:25 :06 < / last_state_change >
< last_hard_state_change > 2015-09-16 18:18:04 < / last_hard_state_change >
< last_time_up > 跨度> 2015 - 09-19 08:00:31 < / last_time_up >
< last_time_down > 2015-09-18 19:25:06 < / last_time_down < span class =code-keyword>>
< / hoststatus >
< / hoststatuslist >
我需要输出
╔════════════════════════════════════════════════════════════════════════════════ ═══════════════════════════════════════════════════════════════════════════主机║正常运行时间║状态║$ b $b╠═══════════════════════════════════════════════════════════════════════════════════════════════ = $ b║ZACN-PSPR-HVR13║2015-09-19 08:00: 31║management_server║
║2║ZACN-PSPR-HVR14║2015-09-1906:00:31║linux_servers║
║3║ZACN-PSPR-HVR15║2015-09-19 09: 00:31║localhost║
╚═════════════════════════════════════════════════════════════════════════════════════════════ ═══════════════════════════════════════════════════════════════════════════════════════════════════════════════ blockquote>如果我理解你的问题,你想加入文件。如果是这种情况,请考虑以下事项:
string xml1 = @ < hostgroup id =2080>
< instance_id> 1< / instance_id>
< hostgroup_name> Avanade-Hypervisors< / hostgroup_name>
< members>
< host id =2061>
< host_name> ZACN-PSPR-HVR13< / host_name>
< / host>
< host id =2062>
< host_name> ZACN-PSPR-HVR14< / host_name>
< / host> ;
< host id =2063>
< host_name> ZACN-PSPR-HVR15< / host_name>
< / host>
< /成员>
< / hostgroup>;
string xml2 = @ < hoststatuslist>
< hoststatus id =49294>
< host_id> 2061< / host_id>
< name> ZACN-VSPR-WAP02< / name> ;
< display_name> ZACN-PSPR-HVR13< / display_name>
< alias> management_servers< / alias>
< status_update_time> 2015-09-19 08:00:31< / status_update_time>
< last_state_change> 2015-09-18 19:25:06< / last_state_change>
< last_hard_state_change> 2015-09-16 18:18:04< / last_hard_state_change>
< last_time_up> 2015-09-19 08:00:31< / last_time_up>
< last_time_down> 2015-09-18 19:25:06< / last_time_down>
< / hoststatus>
< hoststatus id =49294>
< host_id> 2062< / host_id>
< name> ZACN-VSPR-WAP02< / name>
< DISPLAY_NAME> ZACN-PSPR- HVR14< / DISPLAY_NAME>
< alias> linux_servers< / alias>
< status_update_time> 2015-09-19 06:00:31< / status_update_time>
< last_state_change> 2015-09-18 19:25:06< / last_state_change>
< last_hard_state_change> 2015-09-16 18:18:04< / last_hard_state_change>
< last_time_up> 2015-09-19 08:00:31< / last_time_up>
< last_time_down> 2015-09-18 19:25:06< / last_time_down>
< / hoststatus>
< hoststatus id =49294>
< host_id> 2063< / host_id>
< name> ZACN-VSPR-WAP02< / name>
< display_name> ZACN-PSPR-HVR15< / display_name>
< alias> localhost< / alias>
< status_update_time> 2015-09-19 09:00:31< / status_update_time>
< last_state_change> 2015-09-18 19:25:06< / last_state_change>
< last_hard_state_change> 2015-09-16 18:18:04< / last_hard_state_change>
< last_time_up> 2015-09-19 08:00:31< / last_time_up>
< last_time_down> 2015-09-18 19:25:06< / last_time_down>
< / hoststatus>
< / hoststatuslist>;
System.Xml.Linq.XElement element1 = System.Xml.Linq.XElement.Parse(xml1);
System.Xml.Linq.XElement element2 = System.Xml.Linq.XElement.Parse(xml2);
var querya = 来自 item1 element1.Descendants( host)
join item2 in element2.Descendants( hoststatus)
on item1.Attribute( id)。值等于item2.Elements( host_id)。First()。Value
select new {
Host = item2.Elements( display_name )。First()。Value,
UpTime = item2.Elements( last_time_up )。First()。Value,
Alias = item2.Elements( 别名).First().Value
};
附加:
多个主机组的测试用例
string xml1 = @ < root>
< hostgroup id =2080>
< instance_id> 1< / instance_id>
< hostgroup_name> Avanade-Hypervisors< / hostgroup_name>
< members>
< host id =2061>
< host_name> ZACN-PSPR-HVR13< / host_name>
< / host>
< host id =2062>
< host_name> ZACN-PSPR-HVR14< / host_name>
< / host>
< host id =2063>
< host_name> ZACN-PSPR-HVR15< / host_name>
< / host>
< / members>
< / hostgroup>
< hostgroup id =2081>
< instance_id> 1< / instance_id>
< hostgroup_name> Avanade-Hypervisors< / hostgroup_name>
< members>
< host id =112>
< host_name> ZACN-PSPR-HVR13< / host_name>
< / host>
< host id =113>
< host_name> ZACN-PSPR-HVR14< / host_name>
< / host>
< / members>
< / hostgroup>
< hostgroup id =2082>
< instance_id> 1< / instance_id>
< hostgroup_name> Avanade-Hypervisors< / hostgroup_name>
< members>
< host id =201>
< host_name> ZACN-PSPR-HVR13< / host_name>
< / host>
< host id =202>
< host_name> ZACN-PSPR-HVR14< / host_name>
< / host>
< host id =203>
< host_name> ZACN-PSPR-HVR15< / host_name>
< / host>
< / members>
< / hostgroup>
< / root>;
string xml2 = @ < hoststatuslist>
< hoststatus id =49294>
< host_id> 2061< / host_id>
< name> ZACN-VSPR-WAP02< / name>
< display_name> ZACN-PSPR-HVR13< / display_name>
< alias> management_servers< / alias>
< status_update_time> 2015-09-19 08:00:31< / status_update_time>
< last_state_change> 2015-09-18 19:25:06< / last_state_change>
< last_hard_state_change> 2015-09-16 18:18:04< / last_hard_state_change>
< last_time_up> 2015-09-19 08:00:31< / last_time_up>
< last_time_down> 2015-09-18 19:25:06< / last_time_down>
< / hoststatus>
< hoststatus id =49294>
< host_id> 2062< / host_id>
< name> ZACN-VSPR-WAP02< / name>
< display_name> ZACN-PSPR-HVR14< / display_name>
< alias> linux_servers< / alias>
< status_update_time> 2015-09-19 06:00:31< / status_update_time>
< last_state_change> 2015-09-18 19:25:06< / last_state_change>
< last_hard_state_change> 2015-09-16 18:18:04< / last_hard_state_change>
< last_time_up> 2015-09-19 08:00:31< / last_time_up>
< last_time_down> 2015-09-18 19:25:06< / last_time_down>
< / hoststatus>
< hoststatus id =49294>
< host_id> 2063< / host_id>
< name> ZACN-VSPR-WAP02< / name>
< display_name> ZACN-PSPR-HVR15< / display_name>
< alias> localhost< / alias>
< status_update_time> 2015-09-19 09:00:31< / status_update_time>
< last_state_change> 2015-09-18 19:25:06< / last_state_change>
< last_hard_state_change> 2015-09-16 18:18:04< / last_hard_state_change>
< last_time_up> 2015-09-19 08:00:31< / last_time_up>
< last_time_down> 2015-09-18 19:25:06< / last_time_down>
< / hoststatus>
< / hoststatuslist>;
System.Xml.Linq.XElement element1 = System.Xml.Linq.XElement.Parse(xml1);
System.Xml.Linq.XElement element2 = System.Xml.Linq.XElement.Parse(xml2);
string id_condition = 2080;
var query = 来自 item1 in element1.Descendants( hostgroup)。其中(x = > x.Attribute( id)。Value == id_condition).First()。Descendants( host)
join item2 in element2.Descendan ts( hoststatus)
on item1.Attribute( id)。值等于item2.Elements( host_id)。First()。值
选择 new {
Host = item2.Elements( display_name)。First( )。值,
UpTime = item2.Elements( last_time_up)。First() .Value,
Alias = item2.Elements( 别名)。First()。价值
};
试试这个:
var result = xdoc.Descendants( hoststatus)
。选择(x => new
{
id =( int )x.Element( host_id),
host =( string )x.Element(< span class =code-string> display_name),
uptime =(DateTime)x.Element( status_update_time),
status =( string )x.Element( 别名)
});
返回 IEnumerable< int,string,DateTime,string>
结果集:
id主机正常运行时间状态
2061 ZACN-PSPR-HVR13 2015-0 9-19 08:00:31 management_servers
2062 ZACN-PSPR-HVR14 2015-09-19 06:00:31 linux_servers2063 ZACN-PSPR-HVR15 2015-09-19 09:00:31 localhost
注意:您的问题不明确...如果您想加入这两个文件的数据,您必须使用文件1的成员
host_id =( int )x.Attribute( id)
// 或/和
host_name =( string )x.Element( host_name)
要想过滤数据,请使用其中
condition。
< hostgroup id = 2080 >
< instance_id > 1 < / instance_id >
< hostgroup_name > Avanade-Hypervisors < / hostgroup_name >
< 成员 >
< host id = 261 >
< host_name > ZACN-PSPR-HVR13 < < span class =code-leadattribute> / host_name >
< / host >
< host id = 262 >
< span class =code-keyword>< host_name > ZACN-PSPR- HVR14 < / host_name >
< / host >
< host id = 263 >
< < span class =code-leadattribute> host_name > ZACN-PSPR-HVR15 < / host_name >
< / host >
< ; / members >
< / hostgroup >
< hostgroup < span class =code-attribute> id = 2081 >
< instance_id > 1 < / instance_id >
< hostgroup_name > Avanade-Hypervisors < / hostgroup_name >
< 成员 >
< host id = 112 >
<host_name>ZACN-PSPR-HVR13</host_name >
</host>
<host id=\"113\">
<host_name>ZACN-PSPR-HVR14</host_name>
</host>
</members>
</hostgroup>
<hostgroup id=\"2082\" >
<instance_id>1</instance_id>
<hostgroup_name>Avanade-Hypervisors</hostgroup_name>
<members>
<host id=\"201\"> ;
<host_name>ZACN-PSPR-HVR13</host_name>
</host>
<host id=\"202\">
<host_name>ZACN-PSPR-HVR14</host_name>
</host>
<host id=\"203\">
<host_name>ZACN-PSPR-HVR15</host_name>
</host>
</members>
</hostgroup>
I have selected my drop down id is 2080. how to mapping two document with where condition? How to filter my data using linq C#?
First XML DOCUMENT
<hostgroup id="2080">
<instance_id>1</instance_id>
<hostgroup_name>Avanade-Hypervisors</hostgroup_name>
<members>
<host id="2061">
<host_name>ZACN-PSPR-HVR13</host_name>
</host>
<host id="2062">
<host_name>ZACN-PSPR-HVR14</host_name>
</host>
<host id="2063">
<host_name>ZACN-PSPR-HVR15</host_name>
</host>
</members>
</hostgroup>
Second XML DOCUMENT
<hoststatuslist>
<hoststatus id="49294">
<host_id>2061</host_id>
<name>ZACN-VSPR-WAP02</name>
<display_name>ZACN-PSPR-HVR13</display_name>
<alias>management_servers</alias>
<status_update_time>2015-09-19 08:00:31</status_update_time>
<last_state_change>2015-09-18 19:25:06</last_state_change>
<last_hard_state_change>2015-09-16 18:18:04</last_hard_state_change>
<last_time_up>2015-09-19 08:00:31</last_time_up>
<last_time_down>2015-09-18 19:25:06</last_time_down>
</hoststatus>
<hoststatus id="49294">
<host_id>2062</host_id>
<name>ZACN-VSPR-WAP02</name>
<display_name>ZACN-PSPR-HVR14</display_name>
<alias>linux_servers</alias>
<status_update_time>2015-09-19 06:00:31</status_update_time>
<last_state_change>2015-09-18 19:25:06</last_state_change>
<last_hard_state_change>2015-09-16 18:18:04</last_hard_state_change>
<last_time_up>2015-09-19 08:00:31</last_time_up>
<last_time_down>2015-09-18 19:25:06</last_time_down>
</hoststatus>
<hoststatus id="49294">
<host_id>2063</host_id>
<name>ZACN-VSPR-WAP02</name>
<display_name>ZACN-PSPR-HVR15</display_name>
<alias>localhost</alias>
<status_update_time>2015-09-19 09:00:31</status_update_time>
<last_state_change>2015-09-18 19:25:06</last_state_change>
<last_hard_state_change>2015-09-16 18:18:04</last_hard_state_change>
<last_time_up>2015-09-19 08:00:31</last_time_up>
<last_time_down>2015-09-18 19:25:06</last_time_down>
</hoststatus>
</hoststatuslist>
I NEED OUTPUT
╔═════╦═════════════════╦═════════════════════╦════════════════════╗
║ ID ║ HOST ║ Uptime ║Status ║
╠═════╬═════════════════╬═════════════════════╬════════════════════╣
║ 1 ║ ZACN-PSPR-HVR13 ║ 2015-09-19 08:00:31 ║ management_server ║
║ 2 ║ ZACN-PSPR-HVR14 ║ 2015-09-19 06:00:31 ║ linux_servers ║
║ 3 ║ ZACN-PSPR-HVR15 ║ 2015-09-19 09:00:31 ║ localhost ║
╚═════╩═════════════════╩═════════════════════╩════════════════════╝
解决方案 If I understood your question correctly, you want to join the documents. If this is the case, consider the following:
string xml1 = @"<hostgroup id=""2080"">
<instance_id>1</instance_id>
<hostgroup_name>Avanade-Hypervisors</hostgroup_name>
<members>
<host id=""2061"">
<host_name>ZACN-PSPR-HVR13</host_name>
</host>
<host id=""2062"">
<host_name>ZACN-PSPR-HVR14</host_name>
</host>
<host id=""2063"">
<host_name>ZACN-PSPR-HVR15</host_name>
</host>
</members>
</hostgroup>";
string xml2 = @"<hoststatuslist>
<hoststatus id=""49294"">
<host_id>2061</host_id>
<name>ZACN-VSPR-WAP02</name>
<display_name>ZACN-PSPR-HVR13</display_name>
<alias>management_servers</alias>
<status_update_time>2015-09-19 08:00:31</status_update_time>
<last_state_change>2015-09-18 19:25:06</last_state_change>
<last_hard_state_change>2015-09-16 18:18:04</last_hard_state_change>
<last_time_up>2015-09-19 08:00:31</last_time_up>
<last_time_down>2015-09-18 19:25:06</last_time_down>
</hoststatus>
<hoststatus id=""49294"">
<host_id>2062</host_id>
<name>ZACN-VSPR-WAP02</name>
<display_name>ZACN-PSPR-HVR14</display_name>
<alias>linux_servers</alias>
<status_update_time>2015-09-19 06:00:31</status_update_time>
<last_state_change>2015-09-18 19:25:06</last_state_change>
<last_hard_state_change>2015-09-16 18:18:04</last_hard_state_change>
<last_time_up>2015-09-19 08:00:31</last_time_up>
<last_time_down>2015-09-18 19:25:06</last_time_down>
</hoststatus>
<hoststatus id=""49294"">
<host_id>2063</host_id>
<name>ZACN-VSPR-WAP02</name>
<display_name>ZACN-PSPR-HVR15</display_name>
<alias>localhost</alias>
<status_update_time>2015-09-19 09:00:31</status_update_time>
<last_state_change>2015-09-18 19:25:06</last_state_change>
<last_hard_state_change>2015-09-16 18:18:04</last_hard_state_change>
<last_time_up>2015-09-19 08:00:31</last_time_up>
<last_time_down>2015-09-18 19:25:06</last_time_down>
</hoststatus>
</hoststatuslist>";
System.Xml.Linq.XElement element1 = System.Xml.Linq.XElement.Parse(xml1);
System.Xml.Linq.XElement element2 = System.Xml.Linq.XElement.Parse(xml2);
var querya = from item1 in element1.Descendants("host")
join item2 in element2.Descendants("hoststatus")
on item1.Attribute("id").Value equals item2.Elements("host_id").First().Value
select new {
Host = item2.Elements("display_name").First().Value,
UpTime = item2.Elements("last_time_up").First().Value,
Alias = item2.Elements("alias").First().Value
};
ADDITION:
Test case for multiple hostgroups
string xml1 = @"<root>
<hostgroup id=""2080"">
<instance_id>1</instance_id>
<hostgroup_name>Avanade-Hypervisors</hostgroup_name>
<members>
<host id=""2061"">
<host_name>ZACN-PSPR-HVR13</host_name>
</host>
<host id=""2062"">
<host_name>ZACN-PSPR-HVR14</host_name>
</host>
<host id=""2063"">
<host_name>ZACN-PSPR-HVR15</host_name>
</host>
</members>
</hostgroup>
<hostgroup id=""2081"">
<instance_id>1</instance_id>
<hostgroup_name>Avanade-Hypervisors</hostgroup_name>
<members>
<host id=""112"">
<host_name>ZACN-PSPR-HVR13</host_name>
</host>
<host id=""113"">
<host_name>ZACN-PSPR-HVR14</host_name>
</host>
</members>
</hostgroup>
<hostgroup id=""2082"">
<instance_id>1</instance_id>
<hostgroup_name>Avanade-Hypervisors</hostgroup_name>
<members>
<host id=""201"">
<host_name>ZACN-PSPR-HVR13</host_name>
</host>
<host id=""202"">
<host_name>ZACN-PSPR-HVR14</host_name>
</host>
<host id=""203"">
<host_name>ZACN-PSPR-HVR15</host_name>
</host>
</members>
</hostgroup>
</root>";
string xml2 = @"<hoststatuslist>
<hoststatus id=""49294"">
<host_id>2061</host_id>
<name>ZACN-VSPR-WAP02</name>
<display_name>ZACN-PSPR-HVR13</display_name>
<alias>management_servers</alias>
<status_update_time>2015-09-19 08:00:31</status_update_time>
<last_state_change>2015-09-18 19:25:06</last_state_change>
<last_hard_state_change>2015-09-16 18:18:04</last_hard_state_change>
<last_time_up>2015-09-19 08:00:31</last_time_up>
<last_time_down>2015-09-18 19:25:06</last_time_down>
</hoststatus>
<hoststatus id=""49294"">
<host_id>2062</host_id>
<name>ZACN-VSPR-WAP02</name>
<display_name>ZACN-PSPR-HVR14</display_name>
<alias>linux_servers</alias>
<status_update_time>2015-09-19 06:00:31</status_update_time>
<last_state_change>2015-09-18 19:25:06</last_state_change>
<last_hard_state_change>2015-09-16 18:18:04</last_hard_state_change>
<last_time_up>2015-09-19 08:00:31</last_time_up>
<last_time_down>2015-09-18 19:25:06</last_time_down>
</hoststatus>
<hoststatus id=""49294"">
<host_id>2063</host_id>
<name>ZACN-VSPR-WAP02</name>
<display_name>ZACN-PSPR-HVR15</display_name>
<alias>localhost</alias>
<status_update_time>2015-09-19 09:00:31</status_update_time>
<last_state_change>2015-09-18 19:25:06</last_state_change>
<last_hard_state_change>2015-09-16 18:18:04</last_hard_state_change>
<last_time_up>2015-09-19 08:00:31</last_time_up>
<last_time_down>2015-09-18 19:25:06</last_time_down>
</hoststatus>
</hoststatuslist>";
System.Xml.Linq.XElement element1 = System.Xml.Linq.XElement.Parse(xml1);
System.Xml.Linq.XElement element2 = System.Xml.Linq.XElement.Parse(xml2);
string id_condition = "2080";
var query = from item1 in element1.Descendants("hostgroup").Where(x => x.Attribute("id").Value == id_condition).First().Descendants("host")
join item2 in element2.Descendants("hoststatus")
on item1.Attribute("id").Value equals item2.Elements("host_id").First().Value
select new {
Host = item2.Elements("display_name").First().Value,
UpTime = item2.Elements("last_time_up").First().Value,
Alias = item2.Elements("alias").First().Value
};
Try this:
var result = xdoc.Descendants("hoststatus")
.Select(x=>new
{
id = (int)x.Element("host_id"),
host = (string)x.Element("display_name"),
uptime = (DateTime)x.Element("status_update_time"),
status = (string)x.Element("alias")
});
Returns IEnumerable<int, string, DateTime, string>
resultset:
id host uptime status
2061 ZACN-PSPR-HVR13 2015-09-19 08:00:31 management_servers
2062 ZACN-PSPR-HVR14 2015-09-19 06:00:31 linux_servers2063 ZACN-PSPR-HVR15 2015-09-19 09:00:31 localhost
Note: your question is unclear... If you want to join data from both documents, you have to use members of document 1
host_id = (int)x.Attribute("id")
// or/and
host_name = (string)x.Element("host_name")
To ba able to filter data, use Where
condition.
<hostgroup id="2080">
<instance_id>1</instance_id>
<hostgroup_name>Avanade-Hypervisors</hostgroup_name>
<members>
<host id="261">
<host_name>ZACN-PSPR-HVR13</host_name>
</host>
<host id="262">
<host_name>ZACN-PSPR-HVR14</host_name>
</host>
<host id="263">
<host_name>ZACN-PSPR-HVR15</host_name>
</host>
</members>
</hostgroup>
<hostgroup id="2081">
<instance_id>1</instance_id>
<hostgroup_name>Avanade-Hypervisors</hostgroup_name>
<members>
<host id="112">
<host_name>ZACN-PSPR-HVR13</host_name>
</host>
<host id="113">
<host_name>ZACN-PSPR-HVR14</host_name>
</host>
</members>
</hostgroup>
<hostgroup id="2082">
<instance_id>1</instance_id>
<hostgroup_name>Avanade-Hypervisors</hostgroup_name>
<members>
<host id="201">
<host_name>ZACN-PSPR-HVR13</host_name>
</host>
<host id="202">
<host_name>ZACN-PSPR-HVR14</host_name>
</host>
<host id="203">
<host_name>ZACN-PSPR-HVR15</host_name>
</host>
</members>
</hostgroup>
这篇关于如何通过linq C#连接两个文件使用where条件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!