Question

I'm developing a class which contains some const strings

public static class Constants
{
    public const string CarID= "car_id";
    //public const string NumberID= "number_id"; // this is the second const string might be added, so 
    //the new created function can return the two

}

public class CarENParameters
{

    public string Params { get; set; }

    public CarENParameters(string carId)
    {
        Params = carId;
    }

}

public static class CarPropertyProcess
{
    //test params

    public static CarENProps Parse(Uri uri,string content)
    {

        string carID= Regex.Matches(content, @"\$\('#CarXL'\)\.val\((\d+)\)", RegexOptions.None)[0].Groups[1].Value;

        var parameters = new Dictionary<string, string>
        {
            {Constants.CarID, carID},        
        };

        return new CarENProps(uri.AbsoluteUri, parameters);
    }

    public static CarENParameters GetParameters()
    {
        return new CarENParameters(Constants.CarID);
    }
}

In the class Constants, I have one carID, now the case is it might have more than one const string like : public const string NumberID= "number_id";

So I want to create one function to return a list of those const strings, which are car_id and number_id with a class name CarENParameters but I havent figured out how to return a list by a get/set in a class, should I use dictionary or keyvaluespair to achieve that ? I'm quite new to C# so hope that I can have a better point of view from the helps of you guys. Thanks

Was it helpful?

Solution 2

You can use reflection for this

don't forget to put using System.Reflection;

        // get class type
        Type type = typeof(Constants);

        // get a list of fields
        FieldInfo[] fields = type.GetFields();

        List<CarENParameters> list = new List<CarENParameters>();

        // loop on field list
        foreach (FieldInfo field in fields)
        {
            // if field is a string add it to our return list
            if (field.FieldType == typeof(String))
                list.Add(new CarENParameters((String) field.GetValue(null)));
        }

OTHER TIPS

Are you looking for something like this:

public static List<CarENParameters> GetParameters()
{
    return new List<CarENParameters>()
           {
                new CarENParameters(Constants.CarID1),
                new CarENParameters(Constants.CarID2),
                new CarENParameters(Constants.CarID3)
           }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top