我想从XML文件中检索数组列表。我使用集成工具进行查询。但是如果我想创建一个没有任何foreach循环的数组列表,我该怎么办呢。 (原因是,在这种情况下,foreach无法应用。
XML文件格式:
<arr name="ArrayinXML"><str>dsfadasfsdasda</str><str>gdhsdhshhfb</str>
在Index.cshtml中:
@p.ArrayinXML.FirstOrDefault()
在上面的例子中,它只返回第一个字符串值,而不是第二个字符串值。
答案 0 :(得分:0)
你能为你做一个为foreach做的扩展方法吗?
这样的事情:
public static class IEnumerableExtensions
{
public static string ToString<T>(this IEnumerable<T> collection, string separater)
{
if (collection == null)
return String.Empty;
return String.Join(separater, collection);
}
}
当然,您可以在代码中调用@String.Join(p.ArrayinXML, ", ")
,但我认为扩展方法使其更加优雅。
然后将扩展名称空间添加到web.config中,您可以在视图中执行此操作:
@p.ArrayinXML.ToString(", ")
编辑:
这是带有transform参数的扩展,因此您可以进一步自定义:
public static string ToString<T>(this IEnumerable<T> collection, string separater, Func<T, object> transform) where T : class
{
if (collection == null)
return String.Empty;
return String.Join(separater, collection.Select(s => transform(s).ToString()));
}