저는 숙제를 간단하게 암호화하고 있습니다. 나는 그것을 완료했다, 지금은 람다 식으로 코드를 개선하려고 노력하고있다. 목록에있는 객체는 람다 표현식 후에 변경되지 않습니다. 로컬 변수를 사용하고 있습니까? 그리고 람다 식으로 어떻게 할 수 있습니까? 나는 당신의 대답, 감사 기다리고할당이 List의 변수를 수정하지 않습니다. 람다 식 ForEach 함수
public override string Encrypt(string code)
{
List<Byte> encodedBytes = new List<Byte>(ASCIIEncoding.ASCII.GetBytes(code));
encodedBytes.ForEach(o => { if (hash.Contains(o))
o = hash.ElementAt((hash.IndexOf(o) + ShiftAmount) % hash.Count); });
return ASCIIEncoding.ASCII.GetString(encodedBytes.ToArray());
}
다음 내 코드 ...
'hash'의 유형은 무엇입니까 다음과 같은 것인가? –
코드에 람다 식을 추가해도이 경우 많이 개선되지는 않습니다. 나는 Lambda Expression이 실제로 읽기 능력에 기반한 코드 품질을 감소 시킨다는 것을 제시 할 것이다. 이 경우 표준 ForEach는보다 표현력이 강한 IMO가됩니다. –
@Mark Byers : 해시 유형은 List입니다. HashSet을 시도했지만 필요한 IndexOf 메소드가 없습니다. @Metro Smurf : 조언을 해주시면 감사하겠습니다. NET 기능을 사용하여 재미있게 볼 수 있습니다. :) – nepjua