我是C#的新手。我正試圖解決一個問題,我必須找到未耦合的整數。我正在使用一個在線編譯器。
給定輸入
1, 2, 3, 1, 2
該程式應該輸出:
3
我創建了以下程式 -
using System;
using System.Collections.Generic;
using System.IO.Generic;
class Solution {
static void Main(String[] args) {
int[] num;
int accum=0;
int j=0;
string input = Console.ReadLine();
input = input.Replace(",","") 。
num = input.Select(int.Parse).ToArray()。
for (int i = 0; i < num.length; i )
accum ^= num[i];
Console.WriteLine(accum)。
}
}
我在將字串1, 2, 3, 1, 2轉換為整數陣列時遇到了麻煩。
我遇到了以下錯誤
error CS1061: Type `string' does not contain a definition for `Select' and no extension method `Select' of type `string' can be found. 你是否缺少`System.Reactive.Linq'或`System.Linq' using指令?
/usr/lib/mono/4.7.2-api/mscorlib.dll(與之前錯誤有關的符號的位置
Solution.cs(18,29): error CS1061: 型別`int[]'不包含`length'的定義 和沒有找到型別`int[]的擴展方法`length。你是否缺少一個程式集參考?
/usr/lib/mono/4.7.2-api/mscorlib.dll(與之前錯誤相關的符號的位置
當我添加System.linq時,它給了我
uj5u.com熱心網友回復: 試一下, 或者通過使用Linq,只需替換如下,你應該需要使用 .NetFiddle : https://dotnetfiddle.net/bahpg9 uj5u.com熱心網友回復: 選擇方法適用于可列舉型別,而不是 uj5u.com熱心網友回復: 下面提供了一個擴展方法來檢查所有輸入的值是否可以是一個int,如果是的話就創建一個int陣列。
作業實體和類專案,對double、floats等有類似代碼。 這里的代碼比之前的回復要多得多,但這里介紹的代碼并不只是針對一個操作,而是放在一個類專案中,然后可以被其他專案使用。
示例使用,這里的輸入是模擬的。
標籤:錯誤 CS0234。型別或名稱空間名稱`linq'不存在于名稱空間`System'中。你是否缺少一個程式集的參考?
static void Main(string[] args)?
{
int[] num;
int accum = 0;
string input = Console.ReadLine();
num = Array.ConvertAll(input.Split(','), int.Parse)。
for (int i = 0; i < num.Length; i )
accum ^= num[i];
Console.WriteLine(accum)。
}
System.Linq命名空間。num = input.Split(',').Select(int.Parse).ToArray()。
string型別。你需要在嘗試將每個元素轉換為int之前,將字串輸入轉換為一個字串陣列。
string input = Console.ReadLine();
string[] inputs = input.Split(', ')
int[] num = inputs.Select(x => int.Parse(x.Trim())).ToArray()。
public static class NumericArray
{
// <summary>
// 確定字串陣列中的每個元素是否能代表一個int。
// </summary>
// <param name="sender">/span></param>
// <returns>/span></returns>
public static bool AllInt(this string[] sender) =>
sender.SelectMany(item => item.ToCharArray()).All(char.IsNumber)。
// <summary>/span>
// 將一個字串陣列轉換為一個int陣列。
// </summary>/span>
// <param name="sender">字串陣列,可以代表整數</param>
// <returns>int array</returns>
public static int[] ToIntegerArray(this string[] sender)
{
var intArray = Array
.ConvertAll(sender,
(input) => new
{
IsInteger = int.TryParse(input, out var integerValue)。
價值 = integerValue
})
.Where(result => result.IsInteger)
.Select(result => result.Value)
.ToArray()。
return intArray;
}
// <summary>
// 回傳一個元素中沒有空格的字串陣列。
// </summary>/span>
// <param name="sender">/span></param>
// <param name="separator">/span>deliminator</param>
// <returns></returns>
public static string[] 字串(this 字串 sender, char separator = ',')?
=> sender.RemoveAllWhiteSpace().Split(separator)。
// <summary>
//洗掉字串中的所有空白。
// </summary>/span>
// <param name="sender">/span></param>
// <returns>/span></returns>
public static string RemoveAllWhiteSpace(this string sender)
=> sender
.ToCharArray().Where(character => !char.IsWhiteSpace(character))
.Select(c => c.ToString()).Aggregate((value1, value2) => value1 value2)。
namespace ConsoleNetCoreApp1
{
class Program {
{
static void Main(string[] args)?
{
/*
*這將是字串userInput = Console.ReadLine()。
*/
string userInput = "1, 2, 3, 1, 2" ;
var result = userInput.Strings();
if (result.AllInt())
{
var intArray = result.ToIntegerArray();
foreach (var intItem in intArray)
{
Console.WriteLine($"{intItem}") 。
}
}
else; }
{
Console.WriteLine("一個或多個值不能代表一個int")。
}
}
}
}
