لقد فهمت أنك تعمل على تشفير سلسلة نصية في C# بنفس الطريقة التي كنت تستخدمها في Python. يمكنك تحقيق ذلك باستخدام حلقة for
للانتقال عبر كل حرف في السلسلة الأصلية وتطبيق عملية التشفير عليه. هناك بعض الاختلافات الصغيرة في الكتابة بين اللغتين. هذه نسخة تقريبية من كيفية تحقيق ذلك في C#:
csharpstring CHARACTER = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-=+_)(*&^%$#@!?><|:;}{][";
string translated = "";
foreach (char uniqueKey in message)
{
if (CHARACTER.Contains(uniqueKey))
{
int num = CHARACTER.IndexOf(uniqueKey);
if (mode == "encrypt")
{
num += key;
}
else if (mode == "decrypt")
{
num -= key;
}
if (num >= CHARACTER.Length)
{
num -= CHARACTER.Length;
}
else if (num < 0)
{
num += CHARACTER.Length;
}
translated += CHARACTER[num];
}
else
{
translated += uniqueKey;
}
}
يرجى ملاحظة أنه يجب عليك تغيير message
و mode
و key
ليتناسبوا مع المتغيرات والمتغيرات الفعلية التي تستخدمها في تطبيقك الفعلي.
المزيد من المعلومات
في الكود السابق، يتم تشفير النص message
باستخدام متغير key
ووضع mode
(encrypt أو decrypt). تتم هذه العملية عن طريق تحويل كل حرف من النص الأصلي إلى حرف مشفر باستخدام قيمة key
للتحرك في النص CHARACTER
المحدد.
- يتم استخدام
foreach
للتحقق من كل حرف فيmessage
. - يتم التحقق من وجود الحرف في
CHARACTER
باستخدامContains
، ثم يتم الحصول على الموضع الصحيح للحرف باستخدامIndexOf
. - يتم تطبيق عملية التشفير أو فك التشفير على الحرف الموجود بناءً على قيمة
key
وmode
. - يتم التعامل مع حالة تجاوز نهاية النص
CHARACTER
باستخدام حسابات بسيطة للتأكد من البقاء ضمن نطاق النص.
هذا الكود يعتمد على مصفوفة CHARACTER
التي تحتوي على الحروف المسموح بها في النص الأصلي والتي يمكن تشفيرها. يجب أن تكون هذه المصفوفة متطابقة تمامًا مع المصفوفة التي كنت تستخدمها في النسخة السابقة من Python لتحقيق نفس النتائج.