我想在正在开发的项目中实现一个堆栈,因为我是一个初学者,所以以前没有使用过堆栈。我只是觉得他们会解决问题。 我对它们的工作方式有一个大致的了解,但是在尝试检索id已推送到堆栈中的数组时遇到了麻烦,正在返回
static void Main(string[] args)
{
int G;
int [] A=new int [2];
Stack st = new Stack();
for (G = 0; G < 5; G++)
{
A[0] = G;
A[1] = G;
st.Push(A);
}
foreach (Object obj in st)
{
Console.WriteLine(obj);
}
Console.ReadKey();
}
我没有得到一组数组,而是得到System.Int32[]
-如何返回数组的内容
答案 0 :(得分:1)
问题是您正在使用
begin
CREATE TABLE #tbl
WITH
( DISTRIBUTION = ROUND_ROBIN
)
AS
SELECT
ROW_NUMBER() OVER(
ORDER BY
(
SELECT
NULL
)) AS Sequence
, CONCAT('SELECT TOP(1) * FROM ', s.name, '.', t.[name]) AS sql_code
FROM sys.pdw_replicated_table_cache_state AS p
JOIN sys.tables AS t
ON t.object_id = p.object_id
JOIN sys.schemas AS s
ON t.schema_id = s.schema_id
WHERE p.[state] = 'NotReady';
DECLARE @nbr_statements INT=
(
SELECT
COUNT(*)
FROM #tbl
), @i INT= 1;
WHILE @i <= @nbr_statements
BEGIN
DECLARE @sql_code NVARCHAR(4000)= (SELECT
sql_code
FROM #tbl
WHERE Sequence = @i);
EXEC sp_executesql @sql_code;
SET @i+=1;
END;
DROP TABLE #tbl;
SET @i = 0;
WHILE
(
SELECT TOP (1)
p.[state]
FROM sys.pdw_replicated_table_cache_state AS p
JOIN sys.tables AS t
ON t.object_id = p.object_id
JOIN sys.schemas AS s
ON t.schema_id = s.schema_id
WHERE p.[state] = 'NotReady'
) = 'NotReady'
BEGIN
IF @i % 100 = 0
BEGIN
RAISERROR('Replication in progress' , 0, 0) WITH NOWAIT;
END;
SET @i = @i + 1;
END;
END
将对象作为参数传递。此方法需要一个字符串作为输入,因此您应该先将数组转换为字符串。
这个问题可能会帮助您: int array to string
这应该有效:
Console.WriteLine(obj);
此外,您还应该注意,要在堆栈中压入相同的数组五次。