The*_*kZn 6 c# asp.net-mvc list ef-code-first
我目前有一个List<T>由以下类组成:
int id { get; set; }
string title { get; set; }
string description { get; set; }
Run Code Online (Sandbox Code Playgroud)
我想创建一个List<string>只有所有在列表中的标题的
这将是最好的表现方式吗?
编辑 我的描述字段平均2k个字符...我不希望它减慢只获得标题.
Edit2
我首先使用MVC的代码(实体框架).将List<T>存储在_context,这是我从查询得到的数据.
编辑3如果可能..有没有办法获得标题和ID?
Dus*_*gen 15
我想创建一个
List<string>列表中的所有标题
您可以使用投影通过Select.
var list = new List<SomeClass>();
var titleList = list.Select(x => x.title).ToList();
Run Code Online (Sandbox Code Playgroud)
有关LINQ扩展方法的更多信息,请参阅C#中的LINQ入门.
如果可能..有没有办法获得标题和ID?
您可以使用匿名类型将所有三个属性放在一个列表中:
var entityList = list.Select(x => new { x.title, x.id, x.description }).ToList();
Run Code Online (Sandbox Code Playgroud)
这将是最好的表现方式吗?
var list = new List<SomeClass>();
var titleList = new List<string>(list.Count);
foreach(var item in list)
{
titleList.Add(item.title);
}
Run Code Online (Sandbox Code Playgroud)
LINQ不会胜过一个简单的foreach陈述,但这是一个权衡,你应该通过基准测试来评估,因为在大多数情况下差异可以忽略不计.
听起来你正在使用Entity Framework,在这种情况下你不会创建List<string>一个List<T>- 你可以List<string>直接从你的查询_context:
var titles = _context.MyTable.Select(x => x.title).ToList();
Run Code Online (Sandbox Code Playgroud)
是的,你可以一起得到标题和ID:
var titleAndIds = _context.MyTable.Select(x => new{ x.title, x.id}).ToList();
Run Code Online (Sandbox Code Playgroud)
这给你一个List<T>where T是一个匿名类型,包括属性title和id.
| 归档时间: |
|
| 查看次数: |
1459 次 |
| 最近记录: |