在列表集中获取特定列表?

时间:2014-03-13 05:11:44

标签: c# arrays asp.net-4.0

所以,我有这样的东西,它得到了一个巨大的信息列表:

public List<Event> _EventList = Event.GetCachedList().OrderBy(u => u.GetUpcomingDateTime(DateTime.UtcNow.Date)).ToList();

我现在可以调用一些函数来同时输出其中一个

protected string GetEarliestDate()
{
    if(_EventList.Count > 0)
    {
        return "?date=" + _EventList.FirstOrDefault().DateList.FirstOrDefault().ToString("MM/dd/yyyy");
    }
    return string.Empty;
}

protected string GetFormattedDate(List<DateTime> aDateList)
{
    if (aDateList.Count > 0)
    {
        return aDateList.FirstOrDefault(u => u.Date >= DateTime.UtcNow.Date).ToString("MMMM dd");
    }
    else
    {
        return string.Empty;
    }
}

还有更多。相同的变量_EventList

我希望能够为这些中的每一个单独Lists而不是为其中一个调用函数。例如,如果函数可以在List<String>中返回所有这些,那么我可以使用这些String列表返回转换为JSON数组。我能够很好地转换为json,但试图找出如何将它们转换为单独的字符串列表而不是仅仅一个字符串。

另外,如何快速创建_EventList方法的列表,而不是这样做?

protected List<String> GetTitle(_EventList)
{
    List<String> theTitles = new List<String>();

    foreach(Event theEvent in _EventList)
    {
        theTitles.Add(theEvent.Title);
    }
    return theTitles;
}

所以,这应该返回所有Titles的List。有很多方法可以获取(从这些方法的返回)列表。猜猜我只是在寻找一种更简单的方法来处理这个问题。谁能在这帮助我?

由于

1 个答案:

答案 0 :(得分:1)

是你需要的Select()方法吗? GetTitle()方法可以是单行代码:

var theTitles = _EventList.Select(p => p.Title)

Select()可帮助您将列表转换为另一个列表。