And to link with another discussion
“Simple” C# codes are quite the same, but I made some mistake, so I correct it here
Charlie one
M.Vertices.CombineIdentical(true, true);
M.Faces.CullDegenerateFaces();
Mine (corrected)
Mesh result = mesh.DuplicateMesh();
result.Faces.CullDegenerateFaces();
result.Vertices.CombineIdentical(true, true);
result.Vertices.CullUnused();
result.RebuildNormals();