基本上我没有收到正确的枚举类型由于某种原因我无法弄清楚为什么,我的代码在下面,非常感谢任何指针/解释...
编辑:键入 - >更改为anothername(感谢高手们)
帮手:
public static T Convert<T>(this string str)
{
return (T)Enum.Parse(typeof(T), str, true);
}
Run Code Online (Sandbox Code Playgroud)
枚举值:
public enum anothername
{
SmallText = 100,
Number = 15,
TextArea = 0,
Bool = 0,
Choices = 0,
}
Run Code Online (Sandbox Code Playgroud)
我的测试:
[Test]
public void EnumGetStringFromEnumType()
{
//arrange
var MaxLength = EnumHelper.Convert<anothername>("TextArea").ToString();
//act
//assert
Assert.AreEqual("TextArea", MaxLength);
}
Run Code Online (Sandbox Code Playgroud)
编辑:
谢谢,删除int值解决了它!
但是......如果我真的想要为某些枚举类型而不是其他类型说出值,该怎么办?
public enum anothername
{
SmallText = 100,
Number = 15,
TextArea,
Bool,
Choices,
}
Run Code Online (Sandbox Code Playgroud)
测试2:
[Test]
public void EnumGetIntValueOrStringFromEnumType()
{
//arrange
var MaxLength …Run Code Online (Sandbox Code Playgroud) 我有一个费用清单(linq到sql实体 - 如果相关) - 高费用,低费用(都是十进制值).我正在通过property value- 比如90000,我想检查这个property值是否与费用列表中的一个(或许多中的第一个值)最匹配.
费用可能是......
(费用较低 - 费用较高)
0 - 50000
50001 - 75000
75001 - 90000
90001 - 140000
190000 - 500000
Run Code Online (Sandbox Code Playgroud)
在这些值中,90000最适合75001 - 90000频段,所以我想拉出那个FeeDetail实体.我真的不知道使用什么操作符,感谢任何帮助,到目前为止我的代码是...
[Test]
public void GetFeeRange()
{
const int id = 44;
var propValue = 90000;
//get a specific fee entity, then get the range of fee details...
var recommendedFees = RepoSession.All<Fee>()
.Where(x =>
x.ClientSurveyTypeID == id)
.GroupJoin(_readOnlySession.All<FeeDetail>(), …Run Code Online (Sandbox Code Playgroud) 我使用下面的代码来设置类的值,这个类的一些值是string decimal decimal? int?等等.
我有一个字段列表 - 其值为字符串,.net正在抛出以下异常:
System.InvalidCastException : Invalid cast from 'System.String' to 'System.Nullable`1[[System.Decimal, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'.
at System.Convert.DefaultToType(IConvertible value, Type targetType, IFormatProvider provider)
at System.String.System.IConvertible.ToType(Type type, IFormatProvider provider)
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at System.Convert.ChangeType(Object value, Type conversionType)
at Surventrix.Domain.Model.Entities.StatisticalData.UpdateStatisticalData(ReportCommit commit, ILogProvider log) in StatisticalData.cs: line 591
at Surventrix.Tests.Stats.StatsTest.CreateStatsFromCommit() in StatsTest.cs: line 32
Run Code Online (Sandbox Code Playgroud)
我的代码是:
public void UpdateStatisticalData(ReportCommit commit, ILogProvider log)
{
var fields = commit.CurrentFieldList.ToList();
var properties = typeof(StatisticalData).GetProperties();
foreach (var p in …Run Code Online (Sandbox Code Playgroud) 我正在创建一个字段数组
def create_fields fields
fields_list = []
fields.each do |field|
# puts "adding_field to array: #{field}"
field_def = { field: field, data: { type: 'Text', description: '' } }
fields_list.push field_def
end
fields_list
end
Run Code Online (Sandbox Code Playgroud)
将fields_list被设置为一个jsonb场.
让我们说我传入
create_fields ['Ford', 'BMW', 'Fiat']
Run Code Online (Sandbox Code Playgroud)
Json结果是一个数组:
{"field"=>"Ford", "data"=>{"type"=>"Text", "description"=>""}}
{"field"=>"BMW", "data"=>{"type"=>"Text", "description"=>""}}
{"field"=>"Fiat", "data"=>{"type"=>"Text", "description"=>""}}
Run Code Online (Sandbox Code Playgroud)
如何从json数组访问'Ford'?我是否错误地创建了数组?有没有更好的方法来创建这个数组,以便我可以访问我想要的字段?
这个断言通过了 assert_equal(3, fields.count)
但是我想得到'福特'并检查它的属性,例如type ='Text',类型可以等于'Number'或者其他什么.