Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从名称数组中获取下一个可用ID_C#_C# 4.0 - Fatal编程技术网

C# 从名称数组中获取下一个可用ID

C# 从名称数组中获取下一个可用ID,c#,c#-4.0,C#,C# 4.0,我有3个字符串,每个字符串包含在一个数组中 string[]folderArray={“1-名称”、“4-另一名称”、“3-另一名称”} 我需要获得下一个可用的ID(文件夹编号) 例如,所需的ID为2,因为它会看到数组中缺少“2”ID 这个问题的PHP副本可以在上找到,请尝试以下代码 string[] folderArray = { "1 - Name", "4 - Another name", "3 - Another name" }; var listId = new Lis

我有3个字符串,每个字符串包含在一个数组中

string[]folderArray={“1-名称”、“4-另一名称”、“3-另一名称”}

我需要获得下一个可用的ID(文件夹编号)

例如,所需的ID为2,因为它会看到数组中缺少“2”ID

这个问题的PHP副本可以在

上找到,请尝试以下代码

    string[] folderArray = { "1 - Name", "4 - Another name", "3 - Another name" };
    var listId = new List<int>();
    foreach (var item in folderArray)
    {
       var tempId = 0;
        if (int.TryParse(item.Split('-')[0].Trim(), out tempId))
           listId.Add(tempId);
    }




   listId.Sort();
   for (var i=1 ;i<listId.Count ;i++)
   {
      if(listId[i]-listId[i-1]>1)
        {
          Console.WriteLine(listId[i-1]+1);
          break;
        }
   }
string[]folderArray={“1-名称”、“4-另一名称”、“3-另一名称”};
var listId=新列表();
foreach(文件夹阵列中的var项目)
{
var-tempId=0;
if(int.TryParse(item.Split('-')[0].Trim(),out tempId))
添加(tempId);
}
Sort();
对于(var i=1;i1)
{
控制台写入线(列表ID[i-1]+1);
打破
}
}
试试这段代码

    string[] folderArray = { "1 - Name", "4 - Another name", "3 - Another name" };
    var listId = new List<int>();
    foreach (var item in folderArray)
    {
       var tempId = 0;
        if (int.TryParse(item.Split('-')[0].Trim(), out tempId))
           listId.Add(tempId);
    }




   listId.Sort();
   for (var i=1 ;i<listId.Count ;i++)
   {
      if(listId[i]-listId[i-1]>1)
        {
          Console.WriteLine(listId[i-1]+1);
          break;
        }
   }
string[]folderArray={“1-名称”、“4-另一名称”、“3-另一名称”};
var listId=新列表();
foreach(文件夹阵列中的var项目)
{
var-tempId=0;
if(int.TryParse(item.Split('-')[0].Trim(),out tempId))
添加(tempId);
}
Sort();
对于(var i=1;i1)
{
控制台写入线(列表ID[i-1]+1);
打破
}
}
试试这段代码

    string[] folderArray = { "1 - Name", "4 - Another name", "3 - Another name" };
    var listId = new List<int>();
    foreach (var item in folderArray)
    {
       var tempId = 0;
        if (int.TryParse(item.Split('-')[0].Trim(), out tempId))
           listId.Add(tempId);
    }




   listId.Sort();
   for (var i=1 ;i<listId.Count ;i++)
   {
      if(listId[i]-listId[i-1]>1)
        {
          Console.WriteLine(listId[i-1]+1);
          break;
        }
   }
string[]folderArray={“1-名称”、“4-另一名称”、“3-另一名称”};
var listId=新列表();
foreach(文件夹阵列中的var项目)
{
var-tempId=0;
if(int.TryParse(item.Split('-')[0].Trim(),out tempId))
添加(tempId);
}
Sort();
对于(var i=1;i1)
{
控制台写入线(列表ID[i-1]+1);
打破
}
}
试试这段代码

    string[] folderArray = { "1 - Name", "4 - Another name", "3 - Another name" };
    var listId = new List<int>();
    foreach (var item in folderArray)
    {
       var tempId = 0;
        if (int.TryParse(item.Split('-')[0].Trim(), out tempId))
           listId.Add(tempId);
    }




   listId.Sort();
   for (var i=1 ;i<listId.Count ;i++)
   {
      if(listId[i]-listId[i-1]>1)
        {
          Console.WriteLine(listId[i-1]+1);
          break;
        }
   }
string[]folderArray={“1-名称”、“4-另一名称”、“3-另一名称”};
var listId=新列表();
foreach(文件夹阵列中的var项目)
{
var-tempId=0;
if(int.TryParse(item.Split('-')[0].Trim(),out tempId))
添加(tempId);
}
Sort();
对于(var i=1;i1)
{
控制台写入线(列表ID[i-1]+1);
打破
}
}

我不会这样做,但如果您希望与您链接的PHP解决方案中的相同:

var missing = Enumerable.Range(1, folderArray.Length).Except(folderArray.Select(f => int.Parse(f.Split('-').First()))).First();
注:这是假设折叠数组中的项目始终为

  • “[number]-[some string]”

没有空字符串,没有空值,等等。

我不会这样做,但是如果您希望与链接的PHP解决方案中的相同,请执行以下操作:

var missing = Enumerable.Range(1, folderArray.Length).Except(folderArray.Select(f => int.Parse(f.Split('-').First()))).First();
注:这是假设折叠数组中的项目始终为

  • “[number]-[some string]”

没有空字符串,没有空值,等等。

我不会这样做,但是如果您希望与链接的PHP解决方案中的相同,请执行以下操作:

var missing = Enumerable.Range(1, folderArray.Length).Except(folderArray.Select(f => int.Parse(f.Split('-').First()))).First();
注:这是假设折叠数组中的项目始终为

  • “[number]-[some string]”

没有空字符串,没有空值,等等。

我不会这样做,但是如果您希望与链接的PHP解决方案中的相同,请执行以下操作:

var missing = Enumerable.Range(1, folderArray.Length).Except(folderArray.Select(f => int.Parse(f.Split('-').First()))).First();
注:这是假设折叠数组中的项目始终为

  • “[number]-[some string]”

无空字符串、无空值等。

请考虑以下几点:

  • 不要使用字符串数组,请使用已排序的集合(例如,
    SortedList
    )和正确的
    IComparer
    (尝试
    比较器。默认值
  • 然后按顺序迭代并找到第一个间隙,间隙表示:
    list.ContainsKey(n)==true&&list.ContainsKey(n+1)==false
    -然后下一个ID是
    n+1
  • 为了提高性能,您可以记住上次给呼叫者的ID(如果支持的话,也可以记住上次删除的文件夹),然后从那里开始搜索下一个ID请求

我想将此作为一条评论发布,但它不适用于格式:-/。

请考虑以下几点:

  • 不要使用字符串数组,请使用已排序的集合(例如,
    SortedList
    )和正确的
    IComparer
    (尝试
    比较器。默认值
  • 然后按顺序迭代并找到第一个间隙,间隙表示:
    list.ContainsKey(n)==true&&list.ContainsKey(n+1)==false
    -然后下一个ID是
    n+1
  • 为了提高性能,您可以记住上次给呼叫者的ID(如果支持的话,也可以记住上次删除的文件夹),然后从那里开始搜索下一个ID请求

我想将此作为一条评论发布,但它不适用于格式:-/。

请考虑以下几点:

  • 不要使用字符串数组,请使用已排序的集合(例如,
    SortedList
    )和正确的
    IComparer
    (尝试
    比较器。默认值
  • 然后按顺序迭代并找到第一个间隙,间隙表示:
    list.ContainsKey(n)==true&&list.ContainsKey(n+1)==false
    -然后下一个ID是
    n+1
  • 为了提高性能,您可以记住上次给呼叫者的ID(如果支持的话,也可以记住上次删除的文件夹),然后从那里开始搜索下一个ID请求

我想将此作为一条评论发布,但它不适用于格式:-/。

请考虑以下几点:

  • 不要使用字符串数组,请使用已排序的集合(例如,
    SortedList
    )和正确的
    IComparer
    (尝试
    比较器。默认值
  • 然后按顺序迭代并找到第一个间隙,间隙表示:
    list.ContainsKey(n)==true&&list.ContainsKey(n+1)==false
    -然后下一个ID是
    n+1
  • 为了提高性能,您可以记住上次给来电者的ID(或上次删除的文件夹)