首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ASP.NET MVC-3中显示不需要预先循环的数组列表。

在ASP.NET MVC-3中显示不需要预先循环的数组列表。
EN

Stack Overflow用户
提问于 2011-10-18 14:43:31
回答 1查看 1.4K关注 0票数 0

我想从XML文件中检索数组列表。我使用集成工具进行查询。但是,如果我想要创建一个数组列表而没有任何foreach循环,我应该做什么。(理由是,在这种情况下,不能应用预测。

XML文件格式:

代码语言:javascript
复制
<arr name="ArrayinXML"><str>dsfadasfsdasda</str><str>gdhsdhshhfb</str>

在Index.cshtml中:

@p.ArrayinXML.FirstOrDefault()

在上述情况下,它只返回第一个字符串值,而不返回第二个字符串值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-18 15:18:39

你能为你做一个扩展方法吗?

就像这样:

代码语言:javascript
复制
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中,您可以在视图中这样做:

代码语言:javascript
复制
@p.ArrayinXML.ToString(", ")

编辑:

下面是带有transform参数的扩展,因此您可以进一步定制:

代码语言:javascript
复制
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()));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7809138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档