gpt4 book ai didi

c# - 如何将 Dictionary 作为 XUnit 的 MemberData 需要的 IEnumerable 返回
转载 作者:太空宇宙 更新时间:2023-11-03 21:19:01 25 4
gpt4 key购买 nike

我正在尝试使用 xunit 的 MemberDataAttribute 返回键/值列表。

例如,像这样:

[Theory]
[MemberData("ValidCardData")]
public void GivenANumber_Constructor_CreatesANewInstance(NotSureWhatType data)
{
..
}

这就是我尝试制作实际数据的方式。

public static IEnumerable<object> ValidCardData
{
get
{
var json = File.ReadAllText("Data\\ValidCards.json");
var cardNumbers = JsonConvert.DeserializeObject<Dictionary<string, string[]>>(json);

return cardNumbers
.Select(x => new KeyValuePair<string, string[]>(x.Key, x.Value))
.ToList()
.Cast<IEnumerable<object>>();
}
}

但它不起作用:

System.InvalidCastExceptionUnable to cast object of type 'System.Collections.Generic.KeyValuePair2[System.String,System.String[]]'
to type 'System.Collections.Generic.IEnumerable
1[System.Object]'.

最佳答案

您正在尝试将字典的每个键/值对转换为 IEnumerable。

如果cardNumbersDictionary<string, string[]> ,那么你可以这样做:

return cardNumbers.Cast<object>();

字典是一个 IEnumerable<KeyValuePair>首先,您只需将它们键入对象即可。

关于c# - 如何将 Dictionary<string, string> 作为 XUnit 的 MemberData 需要的 IEnumerable<object> 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32051291/

25 4 0