数组偏移量

时间:2018-08-16 16:51:47

标签: c#

在C ++中,我可以使用指针算法来抓取从数组的开始位置到数组结尾的所有内容。您如何在C#中完成同一件事?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static string GetText(byte[] value, uint startPos)
        {
            // TODO - What goes here?
            return "";
        }

        static void Main(string[] args)
        {
            byte[] value = new byte[] { 0x41, 0x42, 0x42, 0x42 };
            string result = GetText(value, 1);
            Console.WriteLine(result);
        }
    }
}

预期输出: BBB

2 个答案:

答案 0 :(得分:5)

string result =System.Text.Encoding.UTF8.GetString(value);
return result.Substring(startPos,result.Length-startPos);

(检查startPos是否在0且长度为1之内)

或与GetString

return System.Text.Encoding.UTF8.GetString(value, startPos, startPos-value.Length);

答案 1 :(得分:0)

我相信您可以通过实现您所需的一切

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static string GetText(byte[] value, int startPos)
        {
            if(startPos >= 0 && startPos <= value.Length)
            {
               return System.Text.Encoding.UTF8.GetString(value).Substring(startPos);
            }
            else
            {
               return string.Empty;
            }
        }

        static void Main(string[] args)
        {
            byte[] value = new byte[] { 0x41, 0x42, 0x42, 0x42 };
            string result = GetText(value, 1);
            Console.WriteLine(result);
        }
    }
}