在 linq 表达式中创建新对象时获取列表中的当前索引位置
Get the current index position in a list when creating a new object in a linq expression
我在创建新对象时从 LINQ 列表访问当前位置时遇到问题
我试图声明一个变量并在新对象中递增它,但没有结果。我没有其他想法。在linq表达式中搜索了一段时间但找不到答案
var mapper = Singleton.CreateMapper<DocOutput, List<Document>>();
mapper.AddMapping(r => r.Docs, i => i, (x) => new Document()
{
Id = x.ElementAt( Index Position ).Extrato1.Split('.')[0],
}
在索引位置我需要当前对象位置。
在此先致谢,如有任何帮助,我们将不胜感激。
如果我对你的问题的理解正确,你有 List<Document>
个对象,你需要遍历此列表以获取创建其他对象的每个步骤的索引。
您 return 值是一个映射(我在这里使用字典)- IEnumerable of Tuple<int, object>
为什么不简单地使用 select
来创建这样的元组:
var mapper = new List<Document>();
var mapping = mapper.
Select((doc, n) => new System.Tuple<int, Document>(n, doc));
当然 select
已经可以 return 你自己的类型了,我假设 AddMapping
是你自己的扩展方法,不过要获得 你的元组列表index 和 Document 您很可能需要 运行 以下内容:
var mapper = new List<Document>();
var mapping = mapper.
Select((doc, n) =>
new System.Tuple<int, Document>(doc.ElementAt(n).Extrato1.Split('.')[0], doc));
告诉我这就是你需要的。
我在创建新对象时从 LINQ 列表访问当前位置时遇到问题
我试图声明一个变量并在新对象中递增它,但没有结果。我没有其他想法。在linq表达式中搜索了一段时间但找不到答案
var mapper = Singleton.CreateMapper<DocOutput, List<Document>>();
mapper.AddMapping(r => r.Docs, i => i, (x) => new Document()
{
Id = x.ElementAt( Index Position ).Extrato1.Split('.')[0],
}
在索引位置我需要当前对象位置。
在此先致谢,如有任何帮助,我们将不胜感激。
如果我对你的问题的理解正确,你有 List<Document>
个对象,你需要遍历此列表以获取创建其他对象的每个步骤的索引。
您 return 值是一个映射(我在这里使用字典)- IEnumerable of Tuple<int, object>
为什么不简单地使用 select
来创建这样的元组:
var mapper = new List<Document>();
var mapping = mapper.
Select((doc, n) => new System.Tuple<int, Document>(n, doc));
当然 select
已经可以 return 你自己的类型了,我假设 AddMapping
是你自己的扩展方法,不过要获得 你的元组列表index 和 Document 您很可能需要 运行 以下内容:
var mapper = new List<Document>();
var mapping = mapper.
Select((doc, n) =>
new System.Tuple<int, Document>(doc.ElementAt(n).Extrato1.Split('.')[0], doc));
告诉我这就是你需要的。