这是项目中的需要根据ComputerName来获取IP的一个方法,如果出现多个ComputerName,需要将多个ComputerName的字符串以“;”分开,传进方法中,然后再处理不同的Name,然后再获取不同Name的IP值,我原来的写法如下:

 private static string GetIPAddressFromMachineName(string machineNames)
{
if (machineNames.Trim().EndsWith(";"))
{
machineNames = machineNames.Trim();
machineNames = machineNames.Remove(machineNames.LastIndexOf(';'), );
}
string result = "";
string[] ipadresses;
try
{
#region old
string[] machineName = machineNames.Split(';');
ipadresses = new string[machineName.Length];
for (int i = ; i < machineName.Length; i++)
{
if (machineName[i].Trim() != "")
{
IPHostEntry ipHose = Dns.GetHostEntry(machineName[i].Trim());
if (ipHose.AddressList[].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
ipadresses[i] = ipHose.AddressList[].ToString();
}
else if (ipHose.AddressList[].AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
{
ipadresses[i] = ipHose.AddressList[].ToString();
}
}
}
result = String.Join(",", ipadresses);
#endregion
} catch (Exception)
{
result = "Error";
} return result;
}

Old

我们头儿给的建议写法如下:

 private static string GetIPAddressFromMachineName(string machineNames)
{
if (machineNames.Trim().EndsWith(";"))
{
machineNames = machineNames.Trim();
machineNames = machineNames.Remove(machineNames.LastIndexOf(';'), );
}
string result = "";
try
{
#region new
foreach (string machineName in machineNames.Split(";".ToArray()).ToList())
{
if (machineName.Trim() != "")
{
IPHostEntry ipHose = Dns.GetHostEntry(machineName.Trim());
if (ipHose.AddressList[].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
result += "," + ipHose.AddressList[].ToString();
}
else if(ipHose.AddressList[].AddressFamily==System.Net.Sockets.AddressFamily.InterNetworkV6)
{
result += "," + ipHose.AddressList[].ToString();
}
}
}
if (result.StartsWith(","))
{
result = result.Remove(, );
}
#endregion
} catch (Exception)
{
result = "Error";
} return result;
}

New

记录每一次的成长~~~

有关对字符串的处理,需要用到List时的简化写法的更多相关文章

  1. IE6/7/8中parseInt第一个参数为非法八进制字符串且第二个参数不传时返回值为0

    JavaScript中数字有十进制.八进制.十六进制.以"0"开头的是八进制,"0x"或"0X"开头的是十六进制. parseInt用来把字 ...

  2. IOS--当字符串返回的数据格式为xml/html时

    今天一来办公室就接到客户返回的BUG,其中一个是因为后台返回的字符串中的数据为xml/html格式.  后来经过百度,发现了两种解决方法,第一种是使用webView,webView中专门为了这种情况准 ...

  3. unittest之三:字符串与列表的相互转换与分离数据时的应用

    一.分离数据时,需读取文档中存储的数据,但TXT文件的数据读取出来的类型为列表,而测试用例中断言的时候验证的是字符串,所以需要将列表转为字符串 #1字符串————>列表 str1='hello ...

  4. 去掉字符串中的空格 JS JQ 正则三种不同写法

    <script> function trim(str) { return str.replace(/(^\s*|\s*$)/g, "") } console.log(t ...

  5. 【python】 字符串转小写(含汉字等时仍work)

    def mylower(str): outstr = ""; strlen = len(str); idx = 0; while idx < strlen: if ord(s ...

  6. Node.js入门笔记(4):文件系统(fs)

    文件系统(FileSystem) 文件系统模块 对于文件无外乎创建修改添加. File System - 文件系统模块 - require('fs') fs模块是核心模块,需要使用require导入后 ...

  7. Lua学习笔记2. lua变量和 循环

    1. lua中变量的作用域有三种:全局,局部,表中的域 需要注意的是默认的变量都是全局变量,必须声明为local的变量才是局部变量,即使是在函数里面没有使用local修饰的变量依然是全局变量!!!! ...

  8. 【转】string.Format对C#字符串格式化

    转自:http://blog.csdn.net/samsone/article/details/7556781 1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元) str ...

  9. Android InputStream接收 字符串乱码 问题

    各个国家和地区所制定的不同 ANSI 编码标准中,都只规定了各自语言所需的“字符”.比如:汉字标准(GB2312)中没有规定韩国语字符怎样存储.这些 ANSI 编码标准所规定的内容包含两层含义:1. ...

随机推荐

  1. Linux 创建用户和工作组

    创建用户 useradd user1                            #创建user1用户,创建user1用户同时会创建一个同名的工作组user1 passwd user1   ...

  2. [CC]CC插件初探

    应用程序插件框架的内容包括:主程序App,插件Plugin. 1.实现一个应用程序插架框架关键点有: 一个插件的标准接口,在主程序中存在一个插件的集合.主程序通过循环读取每个插件,将插件对象通过多态的 ...

  3. OSGMFC

    在OSG的Demo中找到MFC_OSG类文件. #pragma once #include <osgViewer/Viewer> #include <osgViewer/Viewer ...

  4. python set add 导致问题 TypeError: unhashable type: 'list'

    问题复现 >>> a = set() >>> b = set() >>> b.add(1) >>> a.add(b) Trace ...

  5. electron Uncaught ReferenceError: jQuery is not defined

    用electron写桌面程序时 ui部分的html页面引入的js会用到jquery 用常规的方式引入是不行的,会抛出如题的异常 <script type="text/javascrip ...

  6. 寻找第K大的数

    在一堆数据中查找到第k个大的值. 名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,解决这个问题的方法很多. 所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S找 ...

  7. PAT 解题报告 1010. Radix (25)

    1010. Radix (25) Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 11 ...

  8. Java类加载器深入探索

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 什么是.class文件? class文件全名称为Java class文件,主要在平台无关性和网 ...

  9. 【java开发系列】—— JDK安装

    前言 作为一个java开发者,安装JDK是不可避免的,但是配置路径却总是记不住,百度也有很多参考例子.这里仅仅当做以后参考的笔记记录. 说到JDK,就不得不提JRE.他们到底是什么呢? 通常我们进行j ...

  10. MySQL: ERROR13(HY000):Can't get stat of

    在mysql中load data数据 mysql> load data infile '/home/a.txt' into table table_a;ERROR 13 (HY000): Can ...