有时我会有这种代码,任何提高可读性的建议 结果[0],结果[1] ...事件命名结果
var productData = "Egg 1.24 1.36";
var result = productData..Split(new char[] { ' ' });
var product = new
{
Name = result[0],
BuyPrice = result[1],
SellPrice = result[2],
};
答案 0 :(得分:1)
我不知道如何获得productData但是有可能将它作为json获取吗?这将提高可读性,而不是拆分它并根据位置获取字符串。
答案 1 :(得分:1)
这可能是矫枉过正,但您可以使用基于C#的扩展方法
7和ValueTuple
可以立即命名您的值。例如:
public static class StringExtensions
{
public static ValueTuple<string, string, string> Split(this string input, string delimiter)
{
var values = input.Split(new[] { delimiter }, StringSplitOptions.None);
return (values[0], values[1], values[2]);
}
}
然后像这样使用它:
var (name, buyPrice, sellPrice) = productData.Split(" ");
Console.WriteLine(name);
编辑:实际上,这是一种更聪明的方式。只需编写一个扩展方法来解构数组:
public static class ArrayExtensions
{
public static void Deconstruct<T>(this T[] values, out T item1, out T item2, out T item3)
{
item1 = values[0];
item2 = values[1];
item3 = values[2];
}
}
现在您可以使用原始string.Split
并像第一个示例一样分配值:
var (name, buyPrice, sellPrice) = productData.Split(new[] { " " }, StringSplitOptions.None);
答案 2 :(得分:0)
在将进行拆分并返回ProductData类对象的字符串类上创建扩展方法
public static YourProductClass GetProductFromString(this string CompinedString)
{
// Do You Splitting Stuff Here and Assign The Values From String To NewProduct
return NewProduct;
}
然后在你的代码
var ProductData = "Egg 1.24 1.36".GetProductFromString();