在使用C#开发时遇到string.Format 需要传递任意个参数的情况(一般是配置中不确定参数个数)
查遍全网也没有比较合适的解决方法.没办法,只有自己摸索了.
翻看API,string.Format有以下重载,最适合的是public static String Format(String format, params object[] args);
从这个思路来看,我们只需要把任意参数转换成 params object[] 类型参数即可,以下是扩展容器的转换方法.
public static object[] Format<T>(this IEnumerable<T> list)
{
if (list == null || list.Count() <= 0)
{
return null;
}
object[] tmp = new object[list.Count()];
var enumerator = list.GetEnumerator();
int index = 0;
while (enumerator.MoveNext())
{
tmp[index++] = enumerator.Current;
}
return tmp;
}
以下是使用方法
List<float> listArgs = new List<float>{
1.0f,2.0f,3.0f //.....任意个参数
};
str = string.Format(str,listArgs.Format());