这是项目中的需要根据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内核编译相关

    参考:http://www.arm.linux.org.uk/docs/kerncomp.php 一. 内核编译1) linux 2.4make clean/make mrpropermake dep ...

  2. python_模块

    1. 模块的导入 (1) python中import module时,系统通常在哪些路径下面查找模块? 在以下的路径查找模块:sys.path 如果你模块所在的目录,不在sys.path的目录下,可以 ...

  3. javascript设计模式学习之二——this

    一.this指向问题 1)默认绑定,即作为独立的普通函数调用 此时this指向全局对象window,如果是严格模式下,则指向undefined; 2)隐式绑定,即具有调用上下文(一种场景就是作为对象的 ...

  4. EBS运行快速安装的程序时,提示DISPLAY变量设置不对

    EBS运行快速安装的程序时,系统提示如下: Rapid Install Wizard is validating your file system...... >> Wizard requ ...

  5. jQuery中的siblings

    所谓siblings,英文翻译就是兄弟节点.那么故名思意,就是拿到某元素的兄弟节点(不包括自己). <html> <head> <script type="te ...

  6. MJRefresh简单处理

    //下拉刷新 默认 self.bottomTableVeiw.header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ [self he ...

  7. URAL 1002 Phone Numbers(KMP+最短路orDP)

    In the present world you frequently meet a lot of call numbers and they are going to be longer and l ...

  8. ARM 寄存器的介绍

    ARM  寄存器  31个通用, 32个程序状态寄存器 怎么算的呢: (R0--R15)   16  +  7 + 8  =31 通用 程序状态寄存器:    6 个 共  37 个. 不分组寄存器: ...

  9. 实验一 操作系统模仿cmd

    实验一.命令解释程序的编写 专业:商软(2)班   姓名:王俊杰  学号:201406114252 一.        实验目的 (1)掌握命令解释程序的原理: (2)掌握简单的DOS调用方法: (3 ...

  10. 解决无法连接到visual studio开发服务器的问题

    今天vs抽风,调试网站出现下图那样: 然后我开始百度搜索 "无法连接到visual studio开发服务器" 出现很多文章: 打开一篇问题,看了里面的内容, 那个解决办法也不是最好 ...