好吧,让我们有说有这样的:C#重构:解析逗号分隔的String [] ARG
string productUidsPostValue =
"693C850B-2B0B-4429-98F8-AE99E92991A8,F37858BD-22E5-4077-BADD-9AFCDCC92628";
我想变成一个List这个可能的最简单的方法。当然,productUidsPostValue
中的字符串必须强制输入为Guid
s,前提是它们的有效性为Guid
s。这是我写的代码。当然它可以重构或减少,对吧?
if (string.IsNullOrEmpty(productUidsPostValue))
{
throw new InvalidOperationException
("this.Request.Form['CheckoutProductUids'] cannot be null or empty.");
}
var seperatedUids = productUidsPostValue.Split(',');
var productUids = new List<Guid>(seperatedUids.Length);
Guid guid;
foreach (var productUid in seperatedUids)
{
if (!GuidHelper.TryParse(productUid, out guid))
{
productUids.Add(guid);
}
}
有没有原因被改变了? – 2010-02-09 05:08:50
考虑“693C850B-2B0B-4429-98F8-AE99E92991A8,F37858BD-22E5-4077-BADD-9AFCDCC92628的输入值,这不是Guid,但会导致Guid.Empty被添加到列表中” – 2010-02-09 05:16:53
@ Travis:我想通过添加空Guid比添加已添加到列表中的最后一个值要好。同样,如果他的列表中的第一个值不是有效的Guid,他的版本也会添加一个空值。 – 2010-02-09 05:20:36