小ネタですが。
var name = "PropertyName"; var output = name.Zip((name + " ").Skip(1), Tuple.Create) .Aggregate("", (x, y) => char.IsLower(y.Item1) && char.IsUpper(y.Item2) ? x + char.ToLower(y.Item1) + "_" : x + char.ToLower(y.Item1)); Console.WriteLine(output); // property_name
正規表現でさくっと置換する方法もありますが、まぁなんとなくLINQで。定番の方法とかってどんなんなんだろうか。