Каков эквивалент Asc VB () и Chr () функции в C#?

Или вы можете использовать рекурсию. Эта программа имеет явное преимущество в том, что ей не нужно находить элемент (или индекс) перед началом вычисления -

const data =
  [ { label: "data", value: "data" }
  , { label: "data", value: "data" }
  , { label: "Others", value: "Others" }
  , { label: "data", value: "data" }
  ]
  
const transform = ([ a, ...rest ]) =>
  a === undefined
    ? []
    : a.label === "Others"
        ? [ ...transform (rest), a ]
        : [ a, ...transform (rest) ]

console .log (transform(data))
// [ { label: "data", value: "data" }
// , { label: "data", value: "data" }
// , { label: "data", value: "data" }
// , { label: "Others", value: "Others" }
// ]

Очевидно, что вы, вероятно, должны сделать "Others" параметром функции -

const data =
  [ { label: "data", value: "data" }
  , { label: "data", value: "data" }
  , { label: "Others", value: "Others" }
  , { label: "data", value: "data" }
  ]
  
const transform = (query, [ a, ...rest ]) =>
  a === undefined
    ? []
    : a.label === query
        ? [ ...transform (query, rest), a ]
        : [ a, ...transform (query, rest) ]

console .log (transform ("Others", data))
// [ { label: "data", value: "data" }
// , { label: "data", value: "data" }
// , { label: "data", value: "data" }
// , { label: "Others", value: "Others" }
// ]

console .log (transform ("data", data))
// [ { label: "Others", value: "Others" }
// , { label: "data", value: "data" }
// , { label: "data", value: "data" }
// , { label: "data", value: "data" }
// ]

Обратите внимание, что исходный ввод не мутировал. Если найдено несколько меток, соответствующих запросу, все из них будут перемещены в конец массива.

29
задан Shaul says I Support Monica 6 April 2009 в 12:26
поделиться

4 ответа

Вы могли всегда добавлять ссылку на Microsoft. VisualBasic и затем используют те же самые методы: Строки. Chr и Strings. Asc.

Это - самый легкий способ получить ту же самую функциональность.

29
ответ дан Garry Shutler 28 November 2019 в 01:26
поделиться

Для Asc() можно бросить char к int как это:

int i = (int)your_char;

и для Chr() можно вспомнить a char от int как это:

char c = (char)your_int;

Вот небольшая программа, которая демонстрирует всю вещь:

using System;

class Program
{
    static void Main()
    {
        char c = 'A';
        int i = 65;

        // both print "True"
        Console.WriteLine(i == (int)c);
        Console.WriteLine(c == (char)i);
    }
}
22
ответ дан Andrew Hare 28 November 2019 в 01:26
поделиться

Для Chr () можно использовать:

char chr = (char)you_char_value;
1
ответ дан Tony 28 November 2019 в 01:26
поделиться

Учитывая символ c и интервал i, и функции fi (интервал) и ФК (символ):

От символа до интервала (аналог VB Asc ()): явно снимите символ в качестве интервала: int i = (int)c;

или неявно бросок (продвигает): fi(char c) {i+= c;}

От интервала до символа (аналог VB Chr ()):

явно снимите интервал в качестве символа: char c = (char)i, fc(int i) {(char)i};

Неявный бросок запрещен, поскольку интервал более широк (имеет больший диапазон значений), чем символ

-1
ответ дан HackSlash 28 November 2019 в 01:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: