foreach를 확장하는 확장 메서드를 만들 수 있습니까? 이 같은
뭔가 :
public static class IEnumerableExtensions
{
public static string ToString<T>(this IEnumerable<T> collection, string separater)
{
if (collection == null)
return String.Empty;
return String.Join(separater, collection);
}
}
당신은 물론 당신의 코드에서 @String.Join(p.ArrayinXML, ", ")
를 호출 할 수 있지만 내가 확장 방법은 좀 더 우아하게 생각합니다.
그런 다음 당신의 Web.config에 확장 네임 스페이스를 추가하고, 당신이보기에이 작업을 수행 할 수 있습니다
@p.ArrayinXML.ToString(", ")
편집 :
이
여기에 추가로 사용자 정의 할 수 있도록 변환 매개 변수를 사용하여 확장이다 :
public static string ToString<T>(this IEnumerable<T> collection, string separater, Func<T, object> transform) where T : class
{
if (collection == null)
return String.Empty;
return String.Join(separater, collection.Select(s => transform(s).ToString()));
}
왜 적용 할 수 없습니까? 당신은 할 수 없다면 꽤 제한되어 있습니다. 'while'이나 for'for'를 사용할 수 있습니까? – Buildstarted