gpt4 book ai didi

c#-4.0 - 如何在 T4 中使用 linq 扩展方法

转载 作者:行者123 更新时间:2023-12-02 01:06:17 26 4
gpt4 key购买 nike

我一直在使用 stackoverflow 和谷歌搜索一段时间,试图找到有关如何在 T4 文件中使用 Linq 扩展方法的答案。我正在使用 VS 2012、.NET 4.5。

例如:

Dictionary<string, string> myDict = new Dictionary<string, string>();
myDict = GetSomeData();

假设我想获取字典中的最后一项:

<#string last = colNames.Keys.Last();#>

它不介意我使用集合,但它不喜欢“.Last()”。

Compiling transformation: 'System.Collections.Generic.Dictionary.KeyCollection' does not contain a definition for 'Last' and no extension method 'Last' accepting a first argument of type 'System.Collections.Generic.Dictionary.KeyCollection' could be found (are you missing a using directive or an assembly reference?)

我已经导入了必要的命名空间...

编辑 -> 为清楚起见...我在 T4 模板的顶部有以下内容:

<#@ assembly name="$(SolutionDir)\SomeProject\bin\Debug\System.Data.Linq.Dll" #>
<#@ import namespace="System.Data.Linq" #>

有什么想法吗?提前致谢。

最佳答案

确保您的 T4 模板包含正确的 Assembly Directive引用 System.Core.dll,这是定义 LINQ 的地方:

<#@ assembly name="System.Core"#>

这等同于常规 C# 项目中的“添加引用...”

然后确保你有一个正确的 Import Directive对于 System.Linq 命名空间:

<#@ import namespace="System.Linq"#>

这等同于常规 C# 代码中的 using 指令。

将这些添加到您的 .tt 文件的顶部。

关于c#-4.0 - 如何在 T4 中使用 linq 扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22205235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com