Переделай пожалуйста из VB в c#:
function CheckPFNumber(const Value:String):Boolean;
var I,Summa:Integer;
begin
Result:=False;
if Length(Value)<>11 then
exit;
for I:=1 to 11 do
if not (Value[I] in ['0'..'9']) then
exit;
Summa:=0;
for I:=1 to 9 do
Inc(Summa,StrToInt(Value[I])*(10-I)); // вычисляем контрольную сумму
Result:=StrToInt(Copy(Value,10,2))=(Summa mod 101); // проверяем остаток от деления контрольной суммы на 101 с двумя последними числам
end;
Jan 16, 7:37am

Конечно! Вот эквивалентный код на C#:

csharp
using System;

public class Program
{
    public static bool CheckPFNumber(string value)
    {
        if (value.Length != 11)
        {
            return false;
        }

        foreach (char c in value)
        {
            if (c < '0' || c > '9')
            {
                return false;
            }
        }

        int summa = 0;
        for (int i = 0; i < 9; i++)
        {
            summa += (value[i] - '0') * (10 - (i + 1)); // вычисляем контрольную сумму
        }

        int controlSum = int.Parse(value.Substring(9, 2));
        return controlSum == (summa % 101); // проверяем остаток от деления контрольной суммы на 101 с двумя последними числами
    }

    public static void Main()
    {
        string testValue = "12345678901";
        bool result = CheckPFNumber(testValue);
        Console.WriteLine(result); // Вывод результата проверки
    }
}

Этот код выполняет ту же задачу, что и ваш исходный код на VB: проверяет, является ли строка корректным номером ПФ (Пенсионного Фонда) на основе контрольной суммы.

Jan 16, 7:37am

This is a shared conversation and may include unverified content that doesn't reflect Mistral AI's views. Login to resume chatting.