gpt4 book ai didi

c# - 将通用类型作为 T 传递

转载 作者:行者123 更新时间:2023-11-30 17:05:59 25 4
gpt4 key购买 nike

我有一个根据类型 T 和 K 编写的方法

public K Process<T,K> (IEnumerable<T> set)
{
//do stuff to set
}

我使用 LINQ 来获取我的数据的一些投影,我需要将其发送以进行处理

var dataSlice=records.Select(r => new { name = r.GetName(), id = r.GetId() });
string result = Process <?, string>(dataSlice);

我应该指定什么? (如果可以的话)

最佳答案

你不能直接因为dataSlice现在是一个匿名类型的集合,你可以尝试把类型信息去掉:

string result = Process(dataSlice);

有时编译器可以为您推断出正确的类型,它可以节省输入并且很有用!

如果这不起作用,那么您最好不要使用匿名类型并创建适当的类型来保存数据,或者使用类似 Tuple 的类型。

匿名类型很棒,但它们主要用于在 linq 查询之间传输数据,而无需求助于自定义类型。

虽然即使您可以通过编译器,您的 Process 方法也不知道它得到了什么,因此将无法从 dataSlice 中提取元素,所以最好去沿着自定义类型路由或使用 Tuple 如前所述。

关于c# - 将通用类型作为 T 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15889614/

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