我是c#的新手,我有一个问题
我有这样的班级模型:
public class SDView
{
public int ViewPK { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public string ConceptOrder { get; set; }
}
最后一个属性,ConceptOrder包含一串数字,每个数字都需要映射到不同的属性值...
示例:
成为ConceptOrder =" 1,2,3,5,4"
public class Item
{
public string Warehouse { get; set; } //concept 1
public string Commodity { get; set; } //concept 2
public string Variety { get; set; } //concept 3
public string Packstyle { get; set; } //concept 4
public string Size { get; set; } //concept 5
}
我需要做的是编写一个返回的方法或函数(基于上面的例子)
" Warehouse01 BellPepper Green JUMBO 7x1"
ConceptOrder可以是任何顺序,但每个数字都映射到某个属性(1总是仓库...... 2总是商品)
显然这个例子是简化的
我无法理解这个
任何帮助将不胜感激!
修改
我正在尝试做的事情,是,我有带有属性的类模型:
SDView类上的属性ConceptOrder包含必须在字符串属性中显示这些属性的顺序
所以我需要一个函数/方法,我可以传递一个ConceptOrder(" 2,3,1,4,5和#34;)并返回一个格式化的字符串......
public class Item
{
public string Warehouse { get; set; } //concept 1
public string Commodity { get; set; } //concept 2
public string Variety { get; set; } //concept 3
public string Packstyle { get; set; } //concept 4
public string Size { get; set; } //concept 5
public string GetProductFromView(string conceptOrder)
{
...
return "CommodityPropValue VarietyPropValue WarehousePropValue.. etc"
}}
答案 0 :(得分:0)
ConceptValue处理每个不同的属性,ConceptValues将为ConceptOrder中的每个值获取ConceptValue,并将它们放在一个字符串中,每个值之间都有一个空格。
fileName = System.getenv("LAMBDA_TASK_ROOT") + "/application-main.properties";
使用...进行测试
public string ConceptValues(string conceptOrder)
{
var split = conceptOrder.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries);
var nums = split.Select(s => Int32.Parse(s.Trim()));
return nums.Select(n => ConceptValue(n))
.Aggregate((acc, s) => string.Format("{0} {1}", acc, s));
}
public string ConceptValue(int concept)
{
switch (conceptOrder)
{
case 1:
return Warehouse;
case 2:
return Commodity;
// etc...
default:
throw new ArgumentException("Unhandled Concept", "concept");
}
}
答案 1 :(得分:0)
因此,在课程Item
中,你有一个像这样的方法
public string GetProductFromView(string conceptOrder)
{
int[] ConceptOrder = conceptOrder.Split(',').Select(x=>Convert.ToInt32(x)).ToArray();
string[] Properties = new string[] {Warehouse,Commodity,Variety,Packstyle,Size};
return string.Join(" ", ConceptOrder.Select(x=>Properties[x]));
}