将PHP转换为C#-如何处理数组?
我需要将几行PHP代码转换为C#。然而,我只有基本的知识,我还不太了解数组 下面是我需要转换为C的代码:将PHP转换为C#-如何处理数组?,c#,php,C#,Php,我需要将几行PHP代码转换为C#。然而,我只有基本的知识,我还不太了解数组 下面是我需要转换为C的代码: 函数解码字符($c、$a1、$a2) { $result=$c; 对于($j=0;$j
函数解码字符($c、$a1、$a2)
{
$result=$c;
对于($j=0;$j
以下是到目前为止我得到的信息:
public string decode_str(string s)
{
string[] a1 = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "W", "G", "X", "M", "H", "R", "U", "Z", "I", "D", "=", "N", "Q", "V", "B", "L" };
string[] a2 = { "b", "z", "a", "c", "l", "m", "e", "p", "s", "J", "x", "d", "f", "t", "i", "o", "Y", "k", "n", "g", "r", "y", "T", "w", "u", "v" };
string result = "";
for (int i = 0; i < s.Length; i++)
{
result += decode_char(s[i], a1, a2);
}
return result;
}
公共字符串解码\u str(字符串s)
{
字符串[]a1={“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“W”、“G”、“X”、“M”、“H”、“R”、“U”、“Z”、“I”、“D”、“=”、“N”、“Q”、“V”、“B”、“L”};
字符串[]a2={“b”,“z”,“a”,“c”,“l”,“m”,“e”,“p”,“s”,“J”,“x”,“d”,“f”,“t”,“i”,“o”,“Y”,“k”,“n”,“g”,“r”,“Y”,“t”,“w”,“u”,“v”};
字符串结果=”;
对于(int i=0;i
有人能帮忙转换解码字符吗
感谢您快速的回答。我自己已经做过了,但使用的是字符串而不是字符,所以我明天会接受答案,届时我将修改代码这应该相当于解码字符
public char decodeChar(char c, string[] a, string[] a2)
{
for(var j = 0; j < a.Length; j++)
{
if(c == a1[j])
return a2[j];
if(c == a2[j])
return a1[j];
}
return c;
}
public char decodeChar(char c,string[]a,string[]a2)
{
对于(变量j=0;j
这应该相当于解码字符
public char decodeChar(char c, string[] a, string[] a2)
{
for(var j = 0; j < a.Length; j++)
{
if(c == a1[j])
return a2[j];
if(c == a2[j])
return a1[j];
}
return c;
}
public char decodeChar(char c,string[]a,string[]a2)
{
对于(变量j=0;j
这很简单:
String DecodeChar(char c, string[] a1, string[] a2) {
for(int i=0; i<a1.length; ++i) {
if(a1[i] == c) return a2[i];
if(a2[i] == c) return a1[i];
}
return c;
}
String DecodeChar(字符c,字符串[]a1,字符串[]a2){
对于(int i=0;i来说,这很容易:
String DecodeChar(char c, string[] a1, string[] a2) {
for(int i=0; i<a1.length; ++i) {
if(a1[i] == c) return a2[i];
if(a2[i] == c) return a1[i];
}
return c;
}
String DecodeChar(字符c,字符串[]a1,字符串[]a2){
对于(int i=0;i请尝试以下方法:
char decode_char(char c, string a1, string a2)
{
for (int i = 0; i < a1.Length; i++)
{
if (c == a1[i]) return a2[i];
if (c == a2[i]) return a1[i];
}
return c;
}
string decode_str(string s)
{
const string a1 = "0123456789WGXMHRUZID=NQVBL";
const string a2 = "bzaclmepsJxdftioYkngryTwuv";
StringBuilder sb = new StringBuilder();
foreach (char c in s)
sb.Append(decode_char(c, a1, a2));
return DecodeFrom64(sb.ToString());
}
string DecodeFrom64(string encodedData)
{
byte[] encBytes = Convert.FromBase64String(encodedData);
return Text.Encoding.Unicode.GetString(encBytes);
}
字符解码\u字符(字符c、字符串a1、字符串a2)
{
对于(int i=0;i
试试这个:
char decode_char(char c, string a1, string a2)
{
for (int i = 0; i < a1.Length; i++)
{
if (c == a1[i]) return a2[i];
if (c == a2[i]) return a1[i];
}
return c;
}
string decode_str(string s)
{
const string a1 = "0123456789WGXMHRUZID=NQVBL";
const string a2 = "bzaclmepsJxdftioYkngryTwuv";
StringBuilder sb = new StringBuilder();
foreach (char c in s)
sb.Append(decode_char(c, a1, a2));
return DecodeFrom64(sb.ToString());
}
string DecodeFrom64(string encodedData)
{
byte[] encBytes = Convert.FromBase64String(encodedData);
return Text.Encoding.Unicode.GetString(encBytes);
}
字符解码\u字符(字符c、字符串a1、字符串a2)
{
对于(int i=0;i
我将尝试重写解码字符;这并没有那么难
public char decode_char(char input, string[] array1, string[] array2)
{
var result = input;
for(var j = 0; j < array1.Length; j++)
{
if (input == array1[j][0]) {
result = array2[j][0];
break;
}
if (input == array2[j][0]) {
result = array1[j][0];
break;
}
}
return result;
}
我将尝试重写decode_char;这并不难
public char decode_char(char input, string[] array1, string[] array2)
{
var result = input;
for(var j = 0; j < array1.Length; j++)
{
if (input == array1[j][0]) {
result = array2[j][0];
break;
}
if (input == array2[j][0]) {
result = array1[j][0];
break;
}
}
return result;
}
你是说你仍然需要转换decode_char()?@M3NTA7是的,我仍然需要转换那个函数,我不确定我已经做的是否正确。你是说你仍然需要转换decode_char()?@M3NTA7是的,我仍然需要转换该函数,我不确定我已经做的是否正确。for循环上缺少花括号意味着您只是在第一个if语句上循环。如果a1
或a2
中找不到c
,您也永远不会返回某些内容。for循环上缺少花括号oop意味着您只是在第一个if语句上循环。您也不会返回c
在a1
或a2
中找不到的内容。如果c
在a1
或a2
中找不到,var result=c;
没有用处,则忘记返回内容:)你们这些人!我只是逐行查看原始函数。我想我应该进行更多的校对…而你们将字符与字符串进行比较;这是非法的。你们可以将其与作为字符串第一个索引的字符进行比较。:)如果在a1
或a2
中找不到c
或a2
,并且var result=c;
没有用,您忘了返回一些内容:)你们这些人!我只是逐行查看原始函数。我想我应该进行更多的校对……而您正在将字符与字符串进行比较;这是非法的。您可以将字符与t进行比较hat是字符串的第一个索引。:)